如何将任何 ServerAlias 重定向到相应的 ServerName?

use*_*825 9 mod-rewrite httpd.conf mod-alias apache-2.2

我想 301 将所有 example.org 重定向到 www.example.org。下面的例子就是这样做的,但是它有很多噪音,因此很难维护并且容易出错:

<VirtualHost 192.0.2.123:80>
        ServerName      example.org
        RedirectPermanent       /               http://www.example.org
</VirtualHost>
<VirtualHost 192.0.2.123:80>
        ServerName      www.example.org
        DocumentRoot    /usr/local/www/example
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

您是否碰巧知道上面的整个内容是否有一些更短的版本?

像这样的伪配置

<VirtualHost 192.0.2.123:80>
        ServerName      www.example.org
        ServerAlias     example.org
#       Redirect-Every-ServerAlias-To-ServerName
        DocumentRoot    /usr/local/www/example
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

这样我就只需要提供应该重定向到的每个子域ServerAlias

O G*_*O G 14

使用 mod_rewrite,像这样:

RewriteEngine On
RewriteCond %{HTTP_HOST}  !^www.example.org [nocase]
RewriteRule ^(.*)$        http://www.example.org$1 [last,redirect=301]
Run Code Online (Sandbox Code Playgroud)