我的 Apache 服务器有很多VirtualHosts
,我想一规则会将所有裸域重定向到www
域。这可能吗?
答案1
根据其他答案,我能够通过VirtualHost
在文件底部创建一个 catch-all 来使其工作,该 catch-all 将请求重定向到命名www
主机
<VirtualHost *:80>
ServerName default
ServerAlias *
<IfModule mod_rewrite.c>
RewriteEngine on
# WITH 'www.'
RewriteCond %{HTTP_HOST} !^www.(.*) [nocase]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}$1 [redirect=permanent,nocase,last]
</IfModule>
</VirtualHost>
答案2
类似这样的事情应该可以工作:
RewriteCond %{HTTP_HOST} !^www.(.*) [nocase]
RewriteRule ^/(.*)$ http://www.%1/$1 [redirect=permanent,nocase,last]
- 匹配
RewriteCond
任何不以以下项开头的 HTTP_HOSTwww.
RewriteRule
然后,将实际请求的内容添加www.
到 (%1) 的反向引用中,RewriteCond
并将反向引用添加到RewriteRule
匹配字符串中