我正在使用.htaccess下的mod_rewrite,我正在尝试重定向(R = 301)这样的网址:
http://domain/index.php?folder=AB_CD
到这样的网址
http://domain/AB/CD/
我该怎么写这条规则?
答案 0 :(得分:1)
在root / .htaccess中尝试以下代码:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^folder=([^_]+)_([^&]+)$ [NC]
RewriteRule ^index\.php$ http://domain.com/%1/%2/? [NC,L,R]
解释:
RewriteCond %{QUERY_STRING} ^folder=([^_]+)_([^&]+)$ [NC]
检查以确保url(index.php)具有具有特定键和值的查询字符串,(folder = foo_bar)根据正则表达式模式,如果url具有有效的查询字符串,则处理规则
RewriteRule ^index\.php$ http://domain.com/%1/%2/? [NC,L,R]
如果条件满足,index.php?query_strings会被重定向到/ query / strings。
重写目标末尾的空问号?很重要,因为它丢弃了原始查询字符串,没有它/index.php?folder=foo_bar重定向到/ foo / bar /?文件夹= foo_bar附加旧查询字符串。
(希望,这有帮助!)