使用 htaccess 将子文件夹内容重定向到不同的域(500 内部服务器错误)
Redirect subfolder content to different domain with htaccess (500 Internal Server Error)
我正在尝试将所有内容从 domain.com/subfolder
重定向到 newdomain.com
。
目前在 .htaccess
domain.com/subfolder
中使用:
RedirectMatch 301 ^/subfolder/$ http://newdomain.com/
问题是它只适用于 http://newdomain.com/
,但在浏览 ex 时。 http://newdomain.com/page1
弹出 500 错误。
也尝试过
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain\.com\subfolder$
RewriteRule (.*) http://newdomain.com./ [R=301,L]
RewriteCond %{HTTP_HOST} !^domain\.com\subfolder$
RewriteRule (.*) http://newdomain.com/ [R=301,L]
这段代码产生:
newdomain.com redirected you too many times. Try clearing your
cookies.
两个域属于同一个帐户。
... both domains belong to the same account.
在这种情况下您需要使用 mod_rewrite,因为您无法区分 domains/hosts 和 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/ [R=302,L]
当您确定它工作正常时,将 302
(临时)更改为 301
(永久)。上面说了,301有缓存,302没有,这样测试起来更方便。
我正在尝试将所有内容从 domain.com/subfolder
重定向到 newdomain.com
。
目前在 .htaccess
domain.com/subfolder
中使用:
RedirectMatch 301 ^/subfolder/$ http://newdomain.com/
问题是它只适用于 http://newdomain.com/
,但在浏览 ex 时。 http://newdomain.com/page1
弹出 500 错误。
也尝试过
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain\.com\subfolder$
RewriteRule (.*) http://newdomain.com./ [R=301,L]
RewriteCond %{HTTP_HOST} !^domain\.com\subfolder$
RewriteRule (.*) http://newdomain.com/ [R=301,L]
这段代码产生:
newdomain.com redirected you too many times. Try clearing your cookies.
两个域属于同一个帐户。
... both domains belong to the same account.
在这种情况下您需要使用 mod_rewrite,因为您无法区分 domains/hosts 和 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/ [R=302,L]
当您确定它工作正常时,将 302
(临时)更改为 301
(永久)。上面说了,301有缓存,302没有,这样测试起来更方便。