繁体   English   中英

使用.htaccess重定向到www站点的子域路由

[英]Redirect to subdomain route with www site using .htaccess

我有一个网站,我已将hta​​ccess配置为将所有流量重定向到www网站。 所以我的网站就是这样的:www.domain.com

现在我想支持所有注册用户的子域名功能,例如username.domain.com但我当前的htaccess规则不允许这样,当我点击这样的URL然后它重定向子域URL以包括www我也不想要。 例如:

我点击了username.domain.com,它变成了www.username.domain.com

这是我目前的htaccess代码:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php

RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

我如何支持主网站的www? 因此,当用户点击子域URL时,它不应该在URL中添加www。

我不是URL重写的专家,所以如果我错过了一些明显的东西,我会道歉。

谢谢

在Apache 2.4+您可以在站点根目录中使用这些规则.htaccess:

RewriteEngine on

# if not main domain skip all rules
RewriteCond %{HTTP_HOST} !^(?:www\.)?domain\.com$ [NC]
RewriteRule ^ - [L]

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ %{REQUEST_SCHEME}://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

您可以使用:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM