web-dev-qa-db-ja.com

どのようにしてServerAliasをそれぞれのServerNameにリダイレクトできますか?

すべてのexample.orgをwww.example.orgに301リダイレクトしたい。次の例はそれだけを行っていますが、ノイズが多く、メンテナンスが難しく、エラーが発生しやすくなっています。

<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>

上記のすべての短いバージョンがあるかどうかをたまたま知っていますか?

このようなものpseudo-config

<VirtualHost 192.0.2.123:80>
        ServerName      www.example.org
        ServerAlias     example.org
#       Redirect-Every-ServerAlias-To-ServerName
        DocumentRoot    /usr/local/www/example
</VirtualHost>

そのため、ServerAliasの下でリダイレクトする必要があるすべてのサブドメインを提供する必要があるだけですか?

7
user569825

次のようなmod_rewriteを使用します。

RewriteEngine On
RewriteCond %{HTTP_Host}  !^www.example.org [nocase]
RewriteRule ^(.*)$        http://www.example.org$1 [last,redirect=301]
12
O G