Estou usando o código a seguir para direcionar todas as solicitações de www para URLs não www:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
Isso funciona muito bem dentro de um arquivo .htaccess na raiz do meu site.
Por exemplo,
www.example.com -> example.com/
www.example.com/ -> example.com/
www.example.com/other_page -> exemplo.com/other_page
No entanto, se eu mover esse mesmo código para minha configuração do VirtualHost, os URLs reescritos conterão uma barra dupla à direita.
www.example.com -> example.com//
www.example.com/ -> example.com//
www.example.com/other_page -> example.com//other_page
Corrigi-o removendo a barra da regra de reescrita:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.org$ [NC]
RewriteRule ^(.*)$ http://example.com$1 [R=301,L]
Mas não consigo entender o motivo disso. Alguém sabe o porquê?