Saya menggunakan kode berikut untuk mengarahkan semua permintaan www ke URL non-www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
Ini berfungsi baik di dalam file .htaccess di root situs web saya.
Misalnya,
www.example.com -> example.com/
www.example.com/ -> example.com/
www.example.com/other_page -> example.com/other_page
Namun, jika saya memindahkan kode yang sama ini ke konfigurasi VirtualHost saya, URL yang ditulis ulang berisi slash trailing ganda.
www.example.com -> example.com//
www.example.com/ -> example.com//
www.example.com/other_page -> example.com//other_page
Saya memperbaikinya dengan menghapus garis miring dari aturan penulisan ulang:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com$1 [R=301,L]
Tapi saya tidak bisa mengerti alasannya. Adakah yang tahu kenapa?