我正在尝试重定向:
domain.com
并www.domain.com
带有
https://www.newdomain.com
301 重定向,但 除外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]