.htaccess 重定向除 www 之外的所有子域

.htacees Redirect All Subdomains Except www

我正在尝试编辑我的 .htaccess 代码以适用于以下所有条件。这是我目前拥有的 .htaccess 文件:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^old_domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^(www\.)?(.+)\.old_domain\.com$
RewriteRule ^(.*)$ https://new_domain.com%{REQUEST_URI} [R=301,L]

这是我正在寻找的功能:

old_domain.com -> https://new_domain.com/     #This Works
old_domain.com/any_directory/ -> https://new_domain.com/any_directory/     #This Works
www.old_domain.com -> https://new_domain.com/     #This Works
any_subdomain_besides_www.old_domain.com -> https://any_subdomain_besides_www.new_domain.com/   #This does NOT work

我应该如何编辑我的 .htaccess 文件以使最后一行与所有其他条件一起工作?需要明确的是,如果旧域上的子域是 www,则在新域上将其删除。但是,如果它是除 www 之外的任何其他子域,请将其保留并仅更改域。目前它删除所有子域。谢谢!

只有 old_domain.com 的 www 子域会被重定向

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?old_domain\.com [NC]
RewriteRule (.*) https://new_domain.com/ [R=301,L]

您可以使用:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?old_domain\.com [NC]
RewriteRule (.*) https://new_domain.com/ [R=301,L]

RewriteCond %{HTTP_HOST} ^(.+)\.old_domain\.com [NC]
RewriteRule (.*) https://%1.new_domain.com/ [R=301,L]