繁体   English   中英

使用查询字符串将旧网址的重写规则重定向到新网址

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM