[英]rewrite rules for old url redirects to new url with query string
我徒劳地试图弄清楚为什么我的重定向无法正常工作。 这是我的htaccess文件的示例:
## activate rewriting engine
RewriteEngine on
## folders of languages
RewriteRule ^([a-z]{2})/(.*)$ /$2?tld=$1 [QSA,L]
## redirections
RewriteRule ^store/category1/category2/$ /store/category2/ [R=301,L]
如您所见,该网站是多语言网站(site.com/fr/,site.com/cn/,...)
当我输入网址site.com/fr/store/category1/category2/时,它会将我重定向到site.com/store/category2/?tld=fr
你知道为什么吗?
非常感谢你的帮助
更改规则顺序以保留R
规则,然后再重写:
## activate rewriting engine
RewriteEngine on
## redirections
RewriteRule ^store/category1/category2/$ /store/category2/ [R=301,L]
## folders of languages
RewriteRule ^([a-z]{2})/(.*)$ /$2?tld=$1 [QSA,L]
重定向您的原因是由于以下RewriteRule
:
RewriteRule ^([a-z]{2})/(.*)$ /$2?tld=$1 [QSA,L]
这是说第一个捕获组(第一组括号)中的内容,将新的URL添加为$ 1,第二个捕获组(第二组括号)添加到URL的开头,并以/
开头
您在该规则上使用了L
标志,因此这是Apache检查的该规则集中的最后一条规则:
http://httpd.apache.org/docs/current/rewrite/flags.html#flag_l
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.