私のApacheサーバーには多数のVirtualHosts
があり、それらすべてのネイキッドドメインをwww
ドメインにリダイレクトするoneルールが必要です。これは可能ですか?
他の回答に基づいて、ファイルの下部にキャッチオールVirtualHost
を作成し、名前付きの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と一致しますRewriteRule
はwww.
をRewriteCond
(%1)への後方参照の前に追加し、実際のリクエストがあったものはすべてRewriteRule
一致への後方参照に追加しますストリング