次のコードを使用して、すべてのwwwリクエストをwww以外のURLに送信しています。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
これは、私のWebサイトのルートにある.htaccessファイル内でうまく機能します。
たとえば、
www.example.com-> example.com/
www.example.com/-> example.com/
www.example.com/other_page-> example.com/other_page
ただし、これと同じコードをVirtualHost構成に移動すると、書き換えられたURLには2つの末尾スラッシュが含まれます。
www.example.com-> example.com//
www.example.com/-> example.com//
www.example.com/other_page-> example.com//other_page
書き換えルールからスラッシュを削除して修正しました。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com$1 [R=301,L]
しかし、その理由がわかりません。誰もが理由を知っていますか?