【问题标题】:Redirect subfolder content to different domain with htaccess (500 Internal Server Error)使用 htaccess 将子文件夹内容重定向到不同的域(500 内部服务器错误)
【发布时间】:2016-12-29 14:43:22
【问题描述】:

我正在尝试将所有内容从 domain.com/subfolder 重定向到 newdomain.com

目前在.htaccess domain.com/subfolder 上使用这个:

RedirectMatch 301 ^/subfolder/$ http://newdomain.com/

问题是它只适用于http://newdomain.com/,但在浏览前。 http://newdomain.com/page1 弹出 500 错误。

也试过了

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain\.com\subfolder$
RewriteRule (.*) http://newdomain.com./$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^domain\.com\subfolder$
RewriteRule (.*) http://newdomain.com/$1 [R=301,L]

这段代码产生:

newdomain.com 重定向您的次数过多。尝试清除您的 饼干。

两个域属于同一个帐户。

【问题讨论】:

  • 是的,两个域属于同一个帐户。尝试了不同的浏览器,还是一样。

标签: .htaccess redirect subdirectory


【解决方案1】:

...两个域属于同一个帐户。

在这种情况下,您需要使用 mod_rewrite,因为您无法使用 mod_alias 区分域/主机(即RedirectMatch)。另外,请注意浏览器会缓存 301 重定向,因此浏览器很可能缓存了您之前的(错误)尝试。

RewriteCond %{HTTP_HOST} !^www\.domain\.com\subfolder$

HTTP_HOST 服务器变量仅包含 URL 的 host(或域)部分。这不包括subfolder。 (但您也使用了反斜杠作为路径分隔符,并且替换中有一个错误的点。)

domain.com/subfolder/.htaccess 文件中尝试以下操作:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$
RewriteRule (.*) http://newdomain.com/$1 [R=302,L]

当您确定它工作正常时,将302(临时)更改为301(永久)。上面说了,301是缓存的,302是不缓存的,这样测试比较容易。

【讨论】:

  • 工作就像一个魅力,非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
  • 2018-03-26
  • 2016-09-22
  • 2017-04-05
  • 1970-01-01
相关资源
最近更新 更多