如何将/?lang = en重定向到/ en?

时间:2019-06-26 03:37:44

标签: php .htaccess redirect mod-rewrite parameters

我无法将多语言网站重定向到一页。我对htaccess的重定向无法正常运行。我需要有关如何完成此操作的帮助。在我的htaccess中,当我添加这两行时

RewriteCond %{QUERY_STRING} ^lang=en$
RewriteRule ^ /en? [R=301,L]

重定向工作,但未找到mysite.com/en显示404。有人帮我吗?

2 个答案:

答案 0 :(得分:0)

如果您的浏览器最终位于mysite.com/cn,则重定向确实有效,因此您的问题不是如何重定向,而是为什么网站上的/ en没有内容。您需要对此进行调查。

答案 1 :(得分:0)

您所显示的重定向规则运行正常。您还需要一个重写规则来处理/en

RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^lang=([a-z]{2})$
RewriteRule ^ /%1? [R=301,L]

RewriteRule ^([a-z]{2})/?$ ?lang=$1 [QSA,L]