301 将所有内容重定向到另一个域,子域除外

301 将所有内容重定向到另一个域,子域除外

我正在尝试重定向:

domain.comwww.domain.com 带有 https://www.newdomain.com301 重定向,但 除外subdomain.domain.com

我尝试了不同的方法,但这些方法都不起作用。我猜是因为我的子域名物理路径位于httpdocs/subdomain/主机下(例如domain.com/subdomain/

此外,我希望www.domain.com/subdomain/有自己的.htaccess完全可以正常工作的 mod_rewrite。这可能吗?怎么做?

答案1

此外,我希望www.domain.com/subdomain/有自己的.htaccess完全可以正常工作的 mod_rewrite。这可能吗?怎么做?

是的,这是可能的。您只需按照建议操作并在子目录.htaccess中包含一个文件即可/subdomain.htaccess文件沿着文件系统路径工作。

默认情况下,mod_rewrite 指令会完全覆盖父配置文件中的任何 mod_rewrite 指令,它们不会被继承。因此,如果您在子域的文件中包含 mod_rewrite 指令.htaccess,这实际上会使您之前的重定向更容易 - 现在无需包含任何特殊条件(RewriteCond指令)。它可以简化为仅一个指令。例如:

RewriteRule (.*) https://www.newdomain.com/$1 [R=301,L]

(这确实假设它newdomain.com是外部托管的。)

通过访问子域,子目录中的 mod_rewrite 指令/subdomain会被处理,而根文件中的重定向.htaccess会被完全忽略。

答案2

您可以使用 mod_rewrite:

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

相关内容