将所有虚拟主机裸域名重定向到 www 网站

将所有虚拟主机裸域名重定向到 www 网站

我的 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]
  1. 匹配RewriteCond任何不以以下项开头的 HTTP_HOSTwww.
  2. RewriteRule然后,将实际请求的内容添加www.到 (%1) 的反向引用中,RewriteCond并将反向引用添加到RewriteRule匹配字符串中

相关内容