伪静态/重定向学习整理
伪静态只是改变了url的表现形式,实际上还是动态页面 伪静态有真实静态页面一样的SEO 我们普遍使用重定向来实现伪静态
重定向
http协议中的3XX(主要有302/303) 例:1.修改apache配置文件 AllowOverride All 2. .htaccess文件 RewriteEngine on RewriteRule ^(.*)\.html$ $1.html
mod_rewrite
apache的url操作模块 包含RewriteBase/RewriteRule/RewriteCond/RewriteMap logLevel使用规范: 生产模式下不要大于2httpd.config logLevel alert rewrite:trace8 只能在conf中设置,不能再.htaccess中设置 日志保存在apache_error.log
模式匹配
支持perl格式的正则表达式和rewirte的变量 多个flag用逗号隔开R
强制外部重定向,后面可以加301或302跳转,不加默认302 301永久重定向(SEO评分分继承) 302临时重定向(获取新的评分)RewriteRule ^(.*)\.html$ /$1.html [R=302] RewriteRule ^(.*)\.html$ /$1.html [R]
c
l链接下一规则,跟下一条规则成为一个整体 加C后当地一条规则匹配的情况下才进入第二条规则,否则不进入 不加C,规则都能访问RewriteRule ^(.*)\.html$ /$1.html [C] RewriteRule ^(.*)\.html$ /$1.php 招的是 .PHP 文件
L
结尾规则,立即停止重写,并不再应用其他重写规则RewriteRule ^(.*)first.php?req=$1 [L] RewriteRule ^(.*)first11111.php?req=$1
NE
不对url中的特殊字符进行hexcode转码RewriteRule ^(.*)\html /index.hml#$1 [R,NE] //不加#会被转义
NC
不区分大小写RewriteRule ^t/(.*)\html /index.hml#$1 [NC] ///t的大小写
G
请求网站已经时效 Apache返回410RewriteRule ^(.*)\oldurl.*$-[G]
QSA
用于url中截取查询字符串RewriteRule ^per/(.*)$ /per.php?person_id=$1 [QSA,R] /per/123.php?name=xxxx
RewriteBase设置目录
RewriteBase Url-path 设置目录级重写的基准urlRewriteBase / RewriteRule ^(.*)\.shtml$ $1.html
RewriteCond
定义一个规则条件RewriteCond $1 "test" RewriteRule ^(.*)\.html $1.hml 先进行rule匹配,匹配成功,查找是否有cond ,如果有则判断是否符合,,,,符合rule生效,不符合rule不生效服务器变量%
RewriteCond %{HTTP_HOST} "127.0.0.1"
RewriteRule ^(.*)\.html http://localhost/$1.hml [R]
当时用127.0.0.1访问时,自动跳转到localhost %1-9 RewriteCond %{HTTP_HOST} "127.0.0.(.*)"
RewriteCond %1 "2"
RewriteRule ^(.*)\.html http://localhost/$1.hml [R]
满足第一个cond,还得满足第二个cond RewritePattern
-d是否是目录 -f是否是文件NC
OR
RewriteCond C:/wamp/www -d [OR] RewriteCond C:/www1 RewriteRule ............... 只要一个满足即可满足
RewriteMap
MapName:命名给rewriteRule调用 MapType:map的文件类型有txt rnd MapSource:map文件目录(最好别放到用户能访问的路径) 放到整个配置项的外面 txt格式:${MapName:LookupKey | DefaultValue}
1.找到httpd.conf 在配置项上面(rnd格式: 随机映射)前加入 RewriteMap pages txt:C:/wamp/map.txt 加入后重启 2.建立文件map.txt test1 pagetest1 test2 pagetest2 3..htacess配置 RewriteRule ^(.*),shtml ${pages:$1|page}.php
RewriteMap servers rnd:C:/wamp/rnd.txt
URL1 S1|S2|S3
URL2 S4|S5
RewriteRule ^/(.*\.(png|gif|jpg))
http://${servers:URL1}/$1 临时重定向/永久重定向
302重定向(可以对搜索引擎作弊,尽量不用防盗链
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.wangmingchang.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.wangmingchang.com/.*$ [NC]
RewriteRule .(gif|jpg|png|jpeg|bmp)$ https://www.xiaozhou.net/pics/404.jpg [R,NC]
https://xiaozhou.net/enable_rewrite_module_of_apache-2012-02-15.html限制访问者IP列表
RewriteMap hosts-deny txt:c:/wamp/hosts.deny //存储限制Ip
RewriteCond ${hosts-deny:%{REMOTE_ADDR}|NOTFOUND} deny [OR]
RewriteCond ${hosts-deny:%{REMOTE_HOST}|NOTFOUND} deny
RewriteRule ^ - [F] http://www.phpcms.cn/html/2011/huanjingdajian_1024/373.html限制迅雷
RewriteCond %{HTTP_USER_AGENT} 2.0.50727 [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^BlackWido [NC,OR]
RewriteRule .abuse.txt tp重定向
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] 本站文章如未注明出处均为原创,转载请注明出处,如有侵权请邮件联系站长。