如何在动态创建的子域前添加www?

时间:2018-04-09 03:27:58

标签: php .htaccess dns subdomain

我想在动态创建的子域前添加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重定向。

1 个答案:

答案 0 :(得分:0)

使用正则表达式匹配子域名,并使用 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]

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