我有一个网站,我将htaccess配置为将所有流量重定向到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重写的专家,所以如果我错过了一些明显的东西,我会道歉。
由于
答案 0 :(得分:2)
在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
答案 1 :(得分:1)
您可以使用:
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