Tôi đang sử dụng mã sau đây để hướng tất cả các yêu cầu www đến các URL không phải www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
Điều này hoạt động rất tốt trong một tập tin .htaccess trong thư mục gốc của trang web của tôi.
Ví dụ:
www.example.com -> example.com/
www.example.com/ -> example.com/
www.example.com/other_page -> example.com/other_page
Tuy nhiên, nếu tôi di chuyển cùng mã này vào cấu hình Virtualhost của mình, các URL được viết lại chứa một dấu gạch chéo kép.
www.example.com -> example.com//
www.example.com/ -> example.com//
www.example.com/other_page -> example.com//other_page
Tôi đã sửa nó bằng cách xóa dấu gạch chéo khỏi quy tắc viết lại:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com$1 [R=301,L]
Nhưng tôi không thể hiểu lý do cho việc này. Có ai biết tại sao không?