搜索
首页后端开发php教程三种实现PHP伪静态页面的方法

  PHP伪静态写法--其一 

    伪静态又名:URL重写 

    主要是为了SEO而生的。(SEO是什么?这个不用问我吧。呵呵~搞网络的不懂SEO那就~~~~) 

    方法一: 

    比如这个网页 

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

    其实处理的脚本是soft.php 参数为1,100,8630 

    相当于soft.php?a=1&b=1=100&c=8630 只不过这样的URL太难记。搜索引擎也不喜欢。 

    真静态只是完全生成了HTML。 

    客户端访问的时候直接输出。不用脚本解释。在流量非常大的时候(比如每天有上百万的访问量的时候)会起到很好的效果。也就是说服务器端实实在在的存在这个HTML页面。 

    当然在你网站的流量没有那么大的时候。URL重写是最好的方法(个人观点,大流量的时候可以考虑负载均衡了。同样没有关系) 

    附URL重写的方法有很多种,APACHE,IISREWRITE。甚至PHP脚本都可以直接处理。比如上例中就是PHP脚本直接处理(该方法好处是大流量的时候直接减轻WEB伺服器的压力。PS:同样也是个人观点: 

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

    下面以程序为例讲一下PHP伪静态的程序实现方法,其实这方法我之前已经有在其它论坛社区发过 

    程序为例: 

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

    CODE: 

    //利用server变量 取得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 


    //就是这么简单了。~) 

    方法二: 

    一 打开 Apache 的配置文件 httpd.conf 。 

    二 将#LoadModule rewrite_module modules/mod_rewrite前面的#去掉 

    三 在 httpd.conf中添加: 

    85ac288f8cdf15251785b7af9467eee6 
    RewriteEngine On 
    #RewriteCond %{ENV:SCRIPT_URL} (?:index|dispbbs)[-0-9]+.html 
    RewriteRule ^(.*?(?:index|dispbbs))-([-0-9]+).html 1.php?__is_apache_rewrite=1&__rewrite_arg=2 
    2071f931c9870be1bebed0bdda8305e7 

    四 要实现asp帖子URL到php帖子的映射,在 第三步的85ac288f8cdf15251785b7af9467eee6和2071f931c9870be1bebed0bdda8305e7之间添加: 

    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 

    五 保存httpd.conf并重启Apache 

    方法三: 

 

   <?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; 
    ?>


声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
可以在PHP会话中存储哪些数据?可以在PHP会话中存储哪些数据?May 02, 2025 am 12:17 AM

phpsessionscanStorestrings,数字,数组和原始物。

您如何开始PHP会话?您如何开始PHP会话?May 02, 2025 am 12:16 AM

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考虑使用AttActAcks.s.s.4)

什么是会话再生,如何提高安全性?什么是会话再生,如何提高安全性?May 02, 2025 am 12:15 AM

会话再生是指在用户进行敏感操作时生成新会话ID并使旧ID失效,以防会话固定攻击。实现步骤包括:1.检测敏感操作,2.生成新会话ID,3.销毁旧会话ID,4.更新用户端会话信息。

使用PHP会话时有哪些性能考虑?使用PHP会话时有哪些性能考虑?May 02, 2025 am 12:11 AM

PHP会话对应用性能有显着影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHP会话与Cookie有何不同?PHP会话与Cookie有何不同?May 02, 2025 am 12:03 AM

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

PHP如何识别用户的会话?PHP如何识别用户的会话?May 01, 2025 am 12:23 AM

phpientifiesauser'ssessionusessessionSessionCookiesAndSessionIds.1)whiwSession_start()被称为,phpgeneratesainiquesesesessionIdStoredInacookInAcookInamedInAcienamedphpsessidontheuser'sbrowser'sbrowser.2)thisIdAllowSphptptpptpptpptpptortoreTessessionDataAfromtheserverMtheserver。

确保PHP会议的一些最佳实践是什么?确保PHP会议的一些最佳实践是什么?May 01, 2025 am 12:22 AM

PHP会话的安全可以通过以下措施实现:1.使用session_regenerate_id()在用户登录或重要操作时重新生成会话ID。2.通过HTTPS协议加密传输会话ID。3.使用session_save_path()指定安全目录存储会话数据,并正确设置权限。

PHP会话文件默认存储在哪里?PHP会话文件默认存储在哪里?May 01, 2025 am 12:15 AM

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版