限时免费试用:欢迎注册 api.bigmodel.org ,快速体验大模型 API 接入服务。
当前位置:首页 >开发者 >其他技术

伪静态/重定向学习整理

分类:其他技术时间:2018-06-05浏览:4031
伪静态只是改变了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使用规范: 生产模式下不要大于2
httpd.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返回410
RewriteRule ^(.*)\oldurl.*$-[G]

QSA

用于url中截取查询字符串
RewriteRule ^per/(.*)$ /per.php?person_id=$1 [QSA,R]
/per/123.php?name=xxxx

RewriteBase设置目录

RewriteBase Url-path 设置目录级重写的基准url
RewriteBase /

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  在配置项上面()前加入
RewriteMap pages txt:C:/wamp/map.txt
加入后重启
2.建立文件map.txt
test1 pagetest1
test2 pagetest2
3..htacess配置
RewriteRule ^(.*),shtml ${pages:$1|page}.php
rnd格式: 随机映射
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]
本站文章如未注明出处均为原创,转载请注明出处,如有侵权请邮件联系站长。
0/500
Share your thoughts respectfully.