301使用mod_rewrite重定向

时间:2016-01-22 08:48:52

标签: .htaccess mod-rewrite url-rewriting s3-rewrite-rules

我正在使用.htaccess下的mod_rewrite,我正在尝试重定向(R = 301)这样的网址:

http://domain/index.php?folder=AB_CD 

到这样的网址

http://domain/AB/CD/

我该怎么写这条规则?

1 个答案:

答案 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附加旧查询字符串。

(希望,这有帮助!)