RewriteRule 模式匹配 替换的URL [flags]
- 模式匹配支持Perl格式的正则表达式,和rewrite的变量
- 替换的URL支持模式匹配的结果和rewrite变量
- 多个flag用逗号隔开[R=302,c]
RewriteRule R flag 说明
- 强制外部重定向,后面可以加301或302跳转,不加默认302
- 301永久重定向 对于搜索引擎 seo评分 旧的地址会给到新的地址
- 302临时重定向 新的地址新的seo评分
- 所以我们一般使用301
教程部分
测试环境配好 不会改的看前面教程
AllowOverride All
#RewriteEngine On
#RewriteRule ^(.*)\.html& $1.php
LogLevel alert rewrite:trace8
修改根目录下.htaccess的文件 创建方法前面也有教程
RewriteEngine on
RewriteRule ^(.*)\.html$ /$1.php [R=301]
细心的朋友可能会发现 rule 正则 替换内容 这里多了一个/
使用R flag的时候 要记得加/
RewriteRule C flag 说明
链接下一规则 (必须保证第一条规则匹配 才能进入下一条的规则匹配)
RewriteEngine on
#RewriteRule ^(.*)\.html$ /$1.php [R=301]
RewriteRule ^/?(.*)\.htm$ /$1.html [C]
RewriteRule ^/?(.*)\.html$ /$1.php
与下一条规则成为一个整体,如果这一条不匹配,下一条也不进入了
就是直接访问 1.html的时候不会生效 访问1.htm的时候可以访问到1.php
RewriteRule L flag 说明
结尾规则,立即停止重写操作,并不在应用其他重写规则
RewriteEngine on
RewriteRule ^(.*) first.php?url=$1 [L]
RewriteRule ^(.*) second.php?url=$1
RewriteRule NE flag 说明
不对URL中的特殊字符进行hexcode转码
地址栏上默认的#会转换成%23
修改后
RewriteEngine on
RewriteRule ^(.*)\.html /index.html#$1 [R,NE]
#号将不做变换
RewriteRule NC flag 说明
不区分大小写
RewriteEngine on
RewriteRule ^test/(.*)\.htm /tmp/$1.htm [NC]
此刻就算访问Test也可以定向到tmp
RewriteRule G flag 说明
请求的网页已经失效了(GONE)
Apache 会返回410错误
RewriteEngine on
RewriteRule ^test/.*$ - [G]
RewriteRule QSA flag 说明
用于在URL中截取查询字符串
RewriteEngine on
RewriteRule ^per/(.*)$ /per.php?url=$1 [R,QSA]
解释 访问pre/index.php?name=xiaoming 会跳转到per.php?url=index.php?name=xiaoming
之前鄙人不才写了个 从任意界面跳转登录后 再返回任意界面的php代码
https://blog.csdn.net/mp624183768/article/details/85068962