Home  >  Article  >  Backend Development  >  Three methods to implement pseudo-static pages in PHP

Three methods to implement pseudo-static pages in PHP

巴扎黑
巴扎黑Original
2016-11-24 14:08:291504browse

PHP pseudo-static writing method - one

Pseudo-static is also known as: URL rewriting

It is mainly for SEO. (What is SEO? Don’t ask me about this. Haha~ Those who work on the Internet don’t understand SEO~~~~)

Method 1:

For example, this webpage

http://www.2cto.com /soft. php/1,100,8630.html

In fact, the script processed is soft.php and the parameter is 1,100,8630

Which is equivalent to soft.php?a=1&b=1=100&c=8630, but such a URL is too difficult to remember. Search engines don’t like it either.

​ True static just completely generates HTML.

Output directly when the client accesses. No need for script explanation. It will have very good results when the traffic is very large (such as when there are millions of visits every day). In other words, this HTML page actually exists on the server side.

Of course, when the traffic of your website is not that large. URL rewriting is the best method (in my personal opinion, you can consider load balancing when there is large traffic. It doesn't matter either)

There are many methods of URL rewriting, including APACHE and IISREWRITE. Even PHP scripts can handle it directly. For example, in the above example, it is processed directly by the PHP script (the advantage of this method is that it directly reduces the pressure on the WEB server when there is a large amount of traffic. PS: This is also a personal opinion:

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

Let’s take the program as an example to talk about the PHP pseudo-static program implementation method. In fact, I have posted this method in other forum communities before

Program example:

http://www.2cto.com /soft.php/1,100,8630.html

CODE:

//Use server The variable obtains the PATH_INFO information. In this example, it is /1,100,8630.html, which is the part after the execution script name

if(@$path_info =$_SERVER["PATH_INFO"]){

//Regular match the parameters

if (preg_match("//(d+),(d+),(d+).html/si",$path_info,$arr_path)){

  $gid   =intval($arr_path[1]); //Get value 1

$sid =intval($arr_path[2]); //Get the value 100

$softid =intval($arr_path[3]); //Get the value 8630

}else die("Path:Error!" ;

2. Remove the # in front of #LoadModule rewrite_module modules/mod_rewrite 3. Add in httpd.conf:

_URL} (?:index| dispbbs)[-0-9]+.html
RewriteRule ^(.*?(?:index|dispbbs))-([-0-9]+).html 1.php?__is_apache_rewrite=1&__rewrite_arg=2
5da302f4fcbd7e79702bc304835d7871

Fourth, to implement the mapping of asp post URL to php post, add between 85ac288f8cdf15251785b7af9467eee6 and 2071f931c9870be1bebed0bdda8305e7 in the third step:

RewriteMap tolowercase int:tolower
RewriteCond %{ QUERY_STRING} (?:boardid|page|id|replyid|star|skin)=d+ [NC]
RewriteRule ^(.*(?:index|dispbbs)).asp 1.php?{tolowercase:%{QUERY_STRING}} &__is_apache_rewrite=1

5. Save httpd.conf and restart Apache

Method three:


   <?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伪静态化页面的实现 
    具体用法: 
    例如链接为: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; 
    ?>



Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn