【发布时间】:2013-02-02 21:51:08
【问题描述】:
我目前正在将对 www.example.com 的所有请求重定向到 example.com。 我可以很好地使用 stackoverflow 上其他地方的代码:
RewriteCond %{HTTP_HOST} ^www\.example\.com [NC]
RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
到目前为止一切顺利。 我遇到的问题是我还需要确保我的网站的西班牙语版本也重定向 - www.example.com/es 需要重定向到 example.com/es,但这不适用于上面显示的代码。
我需要添加什么才能使重定向起作用?
感谢您的帮助!
【问题讨论】:
-
奇怪 - 它应该与上面的代码一起工作。这将被
(.*)和$1覆盖。你还有其他的重写规则吗? -
正如迈克尔所说,它应该按原样工作,除非您设置了类似
www.example.com/es->www.es.example.com或www.example.es的东西。 -
您网站的西班牙语版本在文件夹 (
/es) 中?如果是这样,当传入的 URL 包含不同的文件夹时会发生什么:www.example.com/anyfolder? -
感谢您的回复,对您有帮助。 @faa — 是的,我有一个 /es 文件夹。为了使多语言的东西起作用,我记得我也必须在其中有一个 .htaccess 文件。我也会尝试将规则添加到该 .htaccess 文件中,看看它是否能解决问题。
-
所以经过一番摆弄,结果证明在我的 example.com/es/ 文件夹中的 htaccess 文件中添加一个稍微修改的 RewriteRule 解决了它。
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]RewriteRule ^(.*)$ http://example.com/es/$1 [L,R=301](我还不能将此作为解决方案添加,因为我在 Stack Overflow 上没有代表。)
标签: apache .htaccess mod-rewrite redirect