我在堆栈溢出中查找了这个,但没有找到任何相关的答案:
我有一个htaccess文件:
RewriteCond %{HTTP_HOST} !^www\.mywebsite\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*) http://www.mywebsite.com/$1 [L,R,NE]
RewriteRule ^home$ /index.php [L]
RewriteRule ^home$ /index.php?content=home [L]
RewriteRule ^accueil$ /index.php?content=home&lang=fr [L]
RewriteRule ^home$ /index.php?content=home&lang=en [L]
RewriteRule ^acceuil-message-1$ /index.php?content=home&val=1&lang=fr [L]
RewriteRule ^home-notice-1$ /index.php?content=home&val=1&lang=en [L]
RewriteRule ^acceuil-message-2$ /index.php?content=home&val=2&lang=fr [L]
RewriteRule ^home-notice-2$ /index.php?content=home&val=2&lang=en [L]
RewriteRule ^news-a-la-une$ /index.php?content=news&mode=featured&lang=fr [L]
RewriteRule ^featured-news$ /index.php?content=news&mode=featured&lang=en [L]
RewriteRule ^news-recentes-([0-9]+)$ /index.php?content=news&mode=list&page=$1&lang=fr [L]
RewriteRule ^latest-news-([0-9]+)$ /index.php?content=news&mode=list&page=$1&lang=en [L]
...
工作正常。
但我需要设置301重定向。 所以,我只是将[L]改为[R = 301,L]
但是当我这样做时,我的网址就像以前在浏览器上一样。
我认为重定向应用了两次,这可以解释为什么我仍然没有出现任何错误消息,但仍然显示旧网址,但我不知道在哪里应用[R = 301,L]以及不使用它的地方。
感谢您的帮助。
答案 0 :(得分:0)
因此除了RewriteRules之外,您还必须重定向301:
RedirectMatch 301 ^/index.php$ /home [L]
RedirectMatch 301 ^/index.php?content=home&val=([0-9]+)&lang=fr /acceuil-message-1$ [L]
PS:acceuil
中有一个类型应该说accueil
参考:https://httpd.apache.org/docs/current/mod/mod_alias.html#redirectmatch
参考:http://www.larousse.fr/dictionnaires/francais/accueil/569