我的Apache服务器有许多VirtualHosts ,我想有一个规则,将所有的裸域redirect到www域。 这可能吗?
基于另一个答案,我能够通过在文件的底部创build一个全面的VirtualHost来将其redirect到一个命名的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>
像这样的东西应该工作:
RewriteCond %{HTTP_HOST} !^www.(.*) [nocase] RewriteRule ^/(.*)$ http://www.%1/$1 [redirect=permanent,nocase,last]
RewriteCond匹配任何不以www.开头的HTTP_HOST www. RewriteRule prepends www. 到RewriteCond (%1)的反向引用,然后追加任何实际的请求与反向引用的RewriteRule匹配string