【问题标题】:How to add www in front of sub-domain created dynamically?如何在动态创建的子域前添加 www?
【发布时间】:2018-09-18 09:20:48
【问题描述】:

我想在动态创建的子域前面添加 www。 子域是在 cpanel 中使用 *.example.com 创建的,因此用户可以通过前端创建自己的子域。

我已在 .htaccess 中添加此代码,以将我的域定向到 https://www.example.com。但这不适用于子域。

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

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

如何重写代码,以便在使用 www.subdomain.example.com 时可以指向 subdomain.example.com?不影响我的主域名。我的主域和子域都会有 www 重定向。

【问题讨论】:

  • 你想从子域中删除 www 并强制 https 吗?
  • @Mohammed Elhag 我想在子域前启用 www。用户可以使用 www.subdomain.example.com 或 subdomain.example.com 来查看网站。

标签: php .htaccess dns subdomain


【解决方案1】:

使用正则表达式匹配子域,并使用RewriteCond反向引用重定向回用户:

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

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

[^\.]+ 匹配除点 (.) 字符之外的一个或多个字符。 %1RewriteCond 反向引用,提供对分组部分 ([^\.]+) 的访问。

【讨论】:

  • 这会影响主域吗?抱歉,我对 .htaccess 了解不多
  • 我只需在现有代码下方添加此代码?我的主域和子域,前面都需要开启www。
  • 您能否澄清您的问题,您的主域和子域的预期结果是什么,并举例说明。
  • 用户可以使用www.subdomain.example.com查看subdomain.example.com,使用www.example.com查看example.com。
  • 当前.htaccess允许www.example.com直接指向example.com,但不允许www.subdomain.example.com指向subdomain.example.com。我希望主域和子域可以通过 www 直接指向它们的目的地。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-14
  • 2016-05-19
  • 1970-01-01
  • 2016-01-07
  • 2012-08-03
  • 1970-01-01
相关资源
最近更新 更多