• php伪静态与重定向


    什么是伪静态

    伪静态是相对于真静态来讲的,伪静态只是改变了URL格式,实际还是动态页面,有真静态一样的SEO,真静态访问一个静态页面,服务器(apache,nginx)直接读取磁盘静态文件,伪静态是动态文件还有数据库操作...

    什么是重定向

    通过各种方法,将各个网络请求重新定个方向,转到其他位置
    http标准协议 中的3xx(302 303)

    伪静态和重定向实现的方法

    **1.apache主配置文件
    

    针对整个apache服务器的配置,此种配置的Rewrite规则是直接在httpd.conf下书写。配置步骤如下:
    (1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号;
    (2)然后再在httpd.conf中书写如下规则:
    RewriteEngine on

    当访问任何以t_开头,以.html结尾的文件时,将$1用与(.*)匹配的字符替换后,访问相应的test.php页面

    RewriteRule ^/t_(.*).html$ /test.php?id=$1

    **2.通过.htaccess文件
    针对apache服务器下的某一目录的配置,此种配置的Rewrite规则需在此目录下建立一个.htaccess文件来书写。会产生性能问题(判断是否有这个文件)配置步骤如下:
    (1)去除httpd.conf文件中"#LoadModule rewrite_module modules/mod_rewrite.so"前面的"#"号;
    (2)修改httpd.conf文件中的"AllowOverride None"为"AllowOverride all",同时最好将Options也置为"all",否则可能会出问题。
    (3)在目录中建立.htaccess文件,并用记事本打开,书写如下规则:
    RewriteEngine on
    RewriteRule ^/t_(.*).html$ /test.php?id=$1

    **3.通过php脚本配置重定向
    通过header函数重定向

    RewriteRule

    **1.R规则

    RewriteEngine On
    RewriteRule ^(.*).htm$ /$1.html [R=301]    //url地址栏都会发生改变 外部重定向 永久重定向 对于SEO有效果 默认302临时重定向
    

    **2.C规则

    RewriteRule ^(.*).htm$ /$1.html [C]   // test.htm 最后访问test.php   这条匹配成功,才会匹配下一条规则 
    RewriteRule ^(.*).html$ /$1.php
    

    **3.L规则

    RewriteRule ^(.*) first.php?url=$1 [L]   // test.htm 匹配了这条,second那条不匹配了
    RewriteRule ^(.*) second.php?url=$1
    

    **4.NE规则

    RewriteRule ^(.*).htm /index.html#$1 [R,NE]   // 不转义#号
    

    **5.NC则

    RewriteRule ^test/(.*).htm /tmp/$1.htm [NC]   // 不区分大小写
    

    **6.G规则

    RewriteRule ^test/.*$ - [G]   // 失效,如下载资源过了,下载的时间
    

    **7.QSA规则

    RewriteRule ^test/(.*) test.php?url=$1   // 在URI截取查询字符串
    

    RewriteBase

    RewriteBase 指定到哪个路径下找

    RewriteCond

    在RewriteRule之前有一个或多个RewriteCond指令

    RewriteCond $1 "test"  //在浏览器输入 zbb.htm  还是找 zbb.htm   因为zbb不等于test    访问Rule 变量
    RewriteRule ^(.*).htm $1.html
    
    RewriteCond %{HTTP_HOST} "127.0.0.1"  //在浏览器输入IP地址访问 转换成 localhost访问     访问服务器变量 
    RewriteRule ^(.*).htm http://localhost/$1.html [R]
    
    RewriteCond %{HTTP_HOST} "127.0.0.(.*)"  //在浏览器输入IP地址访问 转换成 localhost访问     访问服务器变量 
    RewriteCond $1 '1'  //这是第二个条件,$1代表"127.0.0.(.*)" 括号内匹配的值
    RewriteRule ^(.*).htm http://localhost/$1.html [R]
    
    RewriteCond C:/wamp/www -d //是否是个目录   满足  [OR]   通过or只需满足一个条件 
    RewriteCond C:/wamp/www1 -d //是否是个目录  不满足
    RewriteRule ^(.*).htm $i.html   //不会生效,前两个条件要都满足
    

    RewriteMap

    RewriteMap pages  txt:c:/wamp/map.txt  //配置在apache主配置文件的Directory 标签外部 pages为名字,txt为文件类型,后面为文件路径,主要写映射关系
    test1 pagetest1
    test2 pagetest2
    RewriteRule ^(.*).shtml ${pages:$1}
    
    RewriteMap dirs  rnd:c:/wamp/dirs.txt  //随机映射
    URL1 S1|S2|S3
    URL2 W1|W2|W3
    RewriteRule ^(.*).shtml /${dirs:$1|root}/$1.php    
    

    临时重定向与永久重定向

    面向搜索引擎机器人,301永久,不是顶级的目录A 页面做301重定向到目录B,则可以正常收录B页面(公司内部换域名,重定向到另一个页面)

    面向搜索引擎机器人,302临时,顶级的目录A 页面做302重定向到目录B,则收录的是A页面(网站重定向到别的好的资源网站)

  • 相关阅读:
    iOS开发objectc优势与补足
    UITableView详解
    ipad 、iphone开发-通过定时器显示进度条
    [Yii Framework][SHARE] The directory structure of the Yii project site
    [Yii Framework] Yii中事件和行为的区别和应用
    [Ubuntu] 创建桌面启动图标
    [Ubuntu] Access denied for user ‘debiansysmaint’@'localhost’ (using password: YES)
    [Yii Framework] Chive: which is developed base on Yii, and its aims to be an alternative to phpMyAdmin!
    [javascript] 数组扩展操作
    [php] Generate PhpDoc with NetBeans
  • 原文地址:https://www.cnblogs.com/binxyz/p/7442295.html
Copyright © 2020-2023  润新知