0

非wwwドメインをwwwドメインに書き換えると同時に、直接IPリクエストをリダイレクトしない方法を探しています。

同じサーバー上に複数のサイトがあります。つまり、デフォルトの(仮想)ホストと、ServerNameと複数のServerAliasを持つ1つのVirtualHostがあり、これらは完全に機能します。ドメイン名は「www」で始まる方が好きです。そこで、次のコードを一緒にハッキングしました。これはうまく機能します。

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

httpsは処理しませんが、最大の問題は、サーバーIPへの要求もたとえばから書き換えられることです。「123.45.67.8」から「www.123.45.67.8」。私はそれを解決するために以下の行を追加することができます:

RewriteCond %{HTTP_HOST} !^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$

...しかしそれは効果的ですか?そして、IPv6はどうですか?

mod_rewrite-wizではないので、他の人がこの問題をどのように解決したかを理解しようとしていますが、運がありません。

4

1 に答える 1

1

これは、条件がwwwで始まるかどうかのみをチェックしているためです。代わりに、これを試してください(オプションのhttpsコードを残しました)。

RewriteCond %{HTTP_HOST} ^(yourdomain|thisdomain|thatdomain)\.com
#RewriteCond %{HTTPS} =on
#RewriteRule .* https://www.%{SERVER_NAME}%{REQUEST_URI} [R,L]
RewriteRule .* http://www.%{SERVER_NAME}%{REQUEST_URI} [R,L]
于 2011-06-26T15:13:45.600 に答える