在我的 .htaccess 中,我只想重写 url,以防 url 中没有子域
In my .htaccess I want to Rewrite the url ONLY in case there is no subdomain in the url
我想 example.com 重写为 www.example.com 但前提是 url:
中没有子域
example.com -> rewrite to www.example.com
s.example.com -> no rewrite
peace.example.com -> no rewite
等..
等..
我发现的所有子域重写都添加了 www,不管它是否有子域,这让我很困惑。我不希望它重定向到 www.c.example.com
您可以在 DOCUMENT_ROOT/.htaccess
文件中使用此代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]
标志:
NE
- 无编码
L
- 最后一条规则
R=301
- 使用 http status=301 重定向
RewriteCond %{HTTP_HOST} ^example\.com$
将在域为 example.com
.
时执行
参考文献:
您可以使用两个虚拟主机并为每个虚拟主机定义不同的重写规则。
<VirtualHost *:80>
ServerName example.com
# rewrite to www.example.com
</VirtualHost>
<VirtualHost *:80>
ServerName *.example.com
# do not rewrite
</VirtualHost>
编辑:
不过这需要使用虚拟主机文件。
我想 example.com 重写为 www.example.com 但前提是 url:
中没有子域example.com -> rewrite to www.example.com
s.example.com -> no rewrite
peace.example.com -> no rewite
等.. 等..
我发现的所有子域重写都添加了 www,不管它是否有子域,这让我很困惑。我不希望它重定向到 www.c.example.com
您可以在 DOCUMENT_ROOT/.htaccess
文件中使用此代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]
标志:
NE
- 无编码L
- 最后一条规则R=301
- 使用 http status=301 重定向
RewriteCond %{HTTP_HOST} ^example\.com$
将在域为 example.com
.
参考文献:
您可以使用两个虚拟主机并为每个虚拟主机定义不同的重写规则。
<VirtualHost *:80>
ServerName example.com
# rewrite to www.example.com
</VirtualHost>
<VirtualHost *:80>
ServerName *.example.com
# do not rewrite
</VirtualHost>
编辑:
不过这需要使用虚拟主机文件。