【问题标题】:htaccess redirect www (es) to non www (es)htaccess 将 www (es) 重定向到非 www (es)
【发布时间】: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.comwww.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


【解决方案1】:

在您的 example.com/es/ 文件夹中,创建一个包含以下内容的 .htaccess 文件:

RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/es/$1 [L,R=301]

(Reference)

【讨论】:

  • 一般来说这是一种很好的做法,但对他提到的问题没有帮助。应该是评论而不是答案。
猜你喜欢
  • 2012-11-16
  • 2011-04-12
  • 2015-12-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
  • 2017-05-03
相关资源
最近更新 更多