
No meu httpd.conf
eu tenho:
<FilesMatch "^\.ht">
Order allow,deny
Deny from all
</FilesMatch>
E no meu .htaccess
arquivo eu tenho:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Quando eu HTTP, example.com/.ht
espero ser redirecionado para www.example.com/.ht
, mas em vez disso, o RewriteRule nunca acontece. O cliente nunca é redirecionado para www. O cliente é redirecionado corretamente em todos os outros casos.
Não tenho nenhuma diretiva ErrorDocument.
Apenas me perguntando por que isso acontece e como corrigir esse comportamento no 403.
Responder1
Como você tem acesso ao httpd.conf, não há razão para usar .htaccess.
Em que contexto está o FilesMatch? Está dentro de um vhost?
O seguinte alcança o mesmo resultado, mas melhor:
<VirtualHost *:80>
ServerName example.com
Redirect / http://www.example.com/
</VirtualHost>
<VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/something
</VirtualHost>
Também não há efeitos colaterais estranhos.