>  기사  >  백엔드 개발  >  의사 정적이란 무엇입니까? PHP에서 의사정적을 구현하는 세 가지 방법 소개

의사 정적이란 무엇입니까? PHP에서 의사정적을 구현하는 세 가지 방법 소개

零下一度
零下一度원래의
2017-07-26 16:01:0511570검색

의사 정적은 실제 정적과 관련이 있습니다. 일반적으로 검색 엔진 친화성을 높이기 위해 기사 콘텐츠에서 정적 페이지를 생성하지만 일부 친구는 일부 정보를 실시간으로 표시하고 싶어합니다. 또는 동적 스크립트를 사용하여 일부 문제를 해결하려고 합니다. 웹사이트 콘텐츠는 정적인 방식으로 표시될 수 없습니다. 그러나 이는 검색 엔진에 대한 친근감을 잃습니다. 유사정적 기술을 탄생시킨 둘 사이의 중간 방법을 찾는 방법. 표시되는 것은 HTML과 같은 정적인 페이지이지만 실제로는 ASP와 같은 동적 스크립트를 사용하여 처리됩니다.

의사 정적 일명: URL 재작성

주로 SEO용입니다. (SEO가 뭐죠? 이런 건 묻지 마세요. 하하~ 인터넷에서 일하시는 분들은 SEO를 모르세요~~)

방법 1:

예를 들어 이 페이지는

/soft.php/1,100,8630.html

실제로 처리되는 스크립트는 Soft.php이고 매개변수는 1,100,8630

입니다. Soft.php?a=1&b=1=100&c=8630과 동일하지만 이 URL은 기억하기 너무 어렵습니다. 검색 엔진도 그것을 좋아하지 않습니다.

진정한 정적은 완전히 생성된 HTML입니다.

클라이언트가 접속할 때 직접 출력합니다. 스크립트 설명이 필요하지 않습니다. 트래픽이 매우 클 때(예: 매일 수백만 건의 방문이 있는 경우) 매우 좋은 결과를 얻을 수 있습니다. 즉, 이 HTML 페이지는 실제로 서버측에 존재합니다.

물론, 귀하의 웹사이트 트래픽이 그다지 크지 않을 때입니다. URL 재작성이 가장 좋은 방법입니다. (개인 생각으로는 트래픽이 많을 때 로드 밸런싱을 고려해 볼 수도 있습니다. 그것도 상관없습니다)

APACHE 및 IISREWRITE를 포함하여 URL 재작성을 위한 다양한 방법이 있습니다. 심지어 PHP 스크립트도 이를 직접 처리할 수 있습니다. 예를 들어 위의 예에서는 PHP 스크립트로 직접 처리합니다(이 방법의 장점은 트래픽이 많을 때 WEB 서버에 대한 부담을 직접적으로 줄여준다는 것입니다. PS: 이 역시 개인적인 의견입니다:

===============================================

PHP 의사 정적 프로그램 구현 방법에 대해 이야기하기 위해 프로그램을 예로 들어 보겠습니다. 사실 이 방법은 이전에도 다른 포럼 커뮤니티에 게시한 적이 있습니다

프로그램 예:

/soft.php/1,100,8630.html

코드:

//PATH_INFO 정보를 얻기 위해 서버 변수를 사용합니다. 이 예에서는 실행 스크립트 이름

다음 부분인 /1,100,8630.html입니다. if(@$path_info =$_SERVER["PATH_INFO"]){

//매개변수를 정기적으로 일치시킵니다

if(preg_match("/\/(\d+),(\d+),(\d+)\.html/si",$path_info,$arr_path)){
$gid     =intval($arr_path[1]); //取得值 1
$sid     =intval($arr_path[2]);   //取得值100
$softid   =intval($arr_path[3]);   //取得值8630
}else die("Path:Error!");
//相当于soft.php?gid=1&sid=100&softid=8630


//그렇게 간단합니다. ~)

방법 2:

1. Apache 구성 파일 httpd.conf를 엽니다.

2. #LoadModule rewrite_module 모듈/mod_rewrite

앞의 #을 제거합니다. 3. httpd.conf에 추가:

<IfModule mod_rewrite.c>RewriteEngine On#RewriteCond %{ENV:SCRIPT_URL} (?:index|dispbbs)[-0-9]+.htmlRewriteRule ^(.*?(?:index|dispbbs))-([-0-9]+).html 1.php?__is_apache_rewrite=1&__rewrite_arg=2</IfModule>
四 要实现asp帖子URL到php帖子的映射,在 第三步的<IfModule mod_rewrite.c>和</IfModule>之间添加:
RewriteMap tolowercase int:tolowerRewriteCond %{QUERY_STRING} (?:boardid|page|id|replyid|star|skin)=d+ [NC]RewriteRule ^(.*(?:index|dispbbs)).asp 1.php?{tolowercase:%{QUERY_STRING}}&__is_apache_rewrite=1

5. httpd.conf를 저장하고 Apache를 다시 시작하세요

방법 3:

<?php/*功能:PHP伪静态化页面的实现具体用法:例如链接为:test.php/year/2006/action/_add.htmlmod_rewrite();$yearn=$_GET["year"];//结果为&#39;2006&#39;$action=$_GET["action"];//结果为&#39;_add&#39;
*/function mod_rewrite(){global $_GET;$nav=$_SERVER["REQUEST_URI"];$script_name=$_SERVER["SCRIPT_NAME"];$nav=substr(ereg_replace("^$script_name","",urldecode($nav)),1);$nav=preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//这句是去掉尾部的.html或.htm$vars = explode("/",$nav);for($i=0;$i<Count($vars);$i+=2){$_GET["$vars[$i]"]=$vars[$i+1];}return $_GET;}mod_rewrite();$yearn=$_GET["year"];//结果为&#39;2006&#39;$action=$_GET["action"];//结果为&#39;_add&#39;echo $yearn;echo $action;?>
<?php/*

기능: PHP 의사 정적 페이지 구현
구체적인 사용법:
예를 들어 링크는 test.php/year/2006/action/_add.html

mod_rewrite();$yearn=$_GET["year"];//结果为&#39;2006&#39;$action=$_GET["action"];//结果为&#39;_add&#39;
*/function mod_rewrite(){global $_GET;$nav=$_SERVER["REQUEST_URI"];$script_name=$_SERVER["SCRIPT_NAME"];$nav=substr(ereg_replace("^$script_name","",urldecode($nav)),1);$nav=preg_replace("/^.ht(m){1}(l){0,1}$/","",$nav);//这句是去掉尾部的.html或.htm$vars = explode("/",$nav);for($i=0;$i<Count($vars);$i+=2){$_GET["$vars[$i]"]=$vars[$i+1];}return $_GET;}mod_rewrite();$yearn=$_GET["year"];//结果为&#39;2006&#39;$action=$_GET["action"];//结果为&#39;_add&#39;echo $yearn;echo $action;?>
입니다.

위 내용은 의사 정적이란 무엇입니까? PHP에서 의사정적을 구현하는 세 가지 방법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.