[英]Problem with url-rewriting for a multi-language website
我试图为我的多语言网站设置一些URL重写规则。 它正在工作,我想进行一些更正,现在它不再工作。
当我尝试以下网址: http : //mywebsite.fr/fr/时 ,浏览器将更改http://mywebsite.fr/fr/?lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang=fr&lang= FR&LANG = FR&LANG = FR&LANG = FR&LANG = FR&LANG = FR&LANG = FR&LANG = FR&LANG = FR&LANG = FR&LANG = FR
这是代码:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(fr|en|nl)/$ index.php?lang=$1&%{QUERY_STRING} [L]
我对自己说,这种错误不是源于URL编写,因此在我的php代码中,我将“ return false”作为页面的开头,但是在白页中仍然会出现问题...
另外,如果我禁用所有的url重写规则,则会收到apache错误“未找到” ...
我也尝试过重新启动Apache,同样的问题...
有人有主意吗? 谢谢 !
您将看到一个典型的重写循环。 原因是您无条件地进行了重写,而不管重写目标是否已经实现,因此之前是否已经执行过重写。
您可以使用条件来解决此问题:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{QUERY_STRING} !^lang=
RewriteRule ^/?(fr|en|nl)/?$ /index.php?lang=$1 [L,QSA]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.