【问题标题】:.htacees Redirect All Subdomains Except www.htaccess 重定向除 www 以外的所有子域
【发布时间】:2020-04-14 01:00:48
【问题描述】:

我正在尝试编辑我的 .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 之外的任何其他子域,请将其保留并仅更改域。目前它会删除所有子域。谢谢!

【问题讨论】:

  • 仅供参考,除非我进行了大量研究并且找不到答案,否则我不会在此处发布问题。我已经花了几个小时试图找出正确的方法来做到这一点,而且我已经走到了这一步,只是想不出最后一部分。我学到的几乎所有东西都是自学的,所以如果你要否决这个问题,没关系,请解释原因,这样我下次写问题时可以改进。泰!

标签: .htaccess redirect subdomain


【解决方案1】:

你可以使用:

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

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

【讨论】:

  • 这适用于 .htaccess 检查器 (htaccess.madewithlove.be?share=0349ef65-6976-5932-a451-63f1d700…),但由于某种原因它无法在我的服务器上运行。我做了几个测试以及删除缓存。仍在试图弄清楚为什么它不起作用。
  • 我想通了,我忘记为old_domain.com的DNS添加CNAME记录,所以上面的代码就是答案。如果有人尝试这样做,请将第一对 RewriteCond RewriteRule .htaccess 文件放在 old_domain.com public_html 目录中,并将最后两行放在 subdomain.old_domain.com public_html 目录中的 .htaccess 文件中。并且不要忘记在您的 old_domain.com 的 DNS 中为您的子域创建一个 CNAME。谢谢大家的帮助!
【解决方案2】:

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

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

【讨论】:

  • 非常感谢您的回复,这段代码确实将我已有的三行代码合并为两行,我很感激,但是subdomain.old_domain.com 的输入应该返回subdomain.new_domain.com并且此代码不会返回。我在我的网络服务器以及在线 htaccess 测试工具上进行了验证。不过还是谢谢你。 (除www之外的任何子域都不满足重写条件)
猜你喜欢
  • 2018-02-06
  • 1970-01-01
  • 2015-11-06
  • 2013-10-28
  • 1970-01-01
  • 2015-08-29
  • 1970-01-01
  • 2016-01-21
  • 2017-04-22
相关资源
最近更新 更多