【问题标题】:How to redirect all subdomains to main domain using htaccess?如何使用 htaccess 将所有子域重定向到主域?
【发布时间】:2019-10-23 04:04:28
【问题描述】:

我已经查看并尝试了许多不同的建议,但均无济于事。请帮忙!

我想将所有子域重定向到主域。我已将通配符子域的 DNS 指向我的带有 A 区域的 IP,当前输入的任何子域都将导致 404。我的最终结果是,对于任何子域及其 URL,它将被重定向到主域。即

blog.my-domain.com -> my-domain.com(是的,我的域名有破折号)

test.my-domain.com/testing -> my-domain.com

example.my-domain.com -> my-domain.com

我当前的 .htaccess 文件如下:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

# DO NOT REMOVE THIS LINE AND THE LINES BELOW SSL_REDIRECT:my-domain.com
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^my-domain.com$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# DO NOT REMOVE THIS LINE AND THE LINES ABOVE SSL_REDIRECT:my-domain.com

我尝试在底部添加这段代码但没有用

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(.+)\.my\-domain\.com$ [NC]
RewriteRule (.*) https://my-domain.com%{REQUEST_URI} [L,R=301]

请帮忙谢谢!!

【问题讨论】:

  • 您是否在 Apache 配置中为希望用于主域和所有子域的公共 IP 定义了虚拟主机?

标签: apache .htaccess redirect subdomain wildcard-subdomain


【解决方案1】:

1) 在“# BEGIN WordPress”行之前添加此规则

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^my-domain.com$ [NC]
RewriteRule ^(.*)$ https://my-domain.com/$1 [R=301,L]

这是 1:1 重写示例:

(http or https)://any-subdomain.my-domain.com/link <> https://my-domain.com/link

2) 另一种可能性是只为子域添加规则,在“# BEGIN WordPress”行之前添加它

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^(.*)\.my-domain\.com$ [NC]
RewriteRule ^(.*)$ https://my-domain.com/ [R=301,L]

重写所有子域请求到 my-domain.com,例如:

(http or https)://any-subdomain.my-domain.com/link <> https://my-domain.com/

勾选您更喜欢的选项。

【讨论】:

  • 您好,感谢您的回答,但它不起作用。我可以再次确认我们能够使用主域的 htaccess 文件重定向子域吗?
  • 1) 对我来说完全适用于子域到主域的通配符重定向。谢谢!
猜你喜欢
  • 2015-02-13
  • 2017-04-22
  • 2014-09-29
  • 1970-01-01
  • 2019-12-20
  • 1970-01-01
  • 1970-01-01
  • 2015-03-09
  • 1970-01-01
相关资源
最近更新 更多