¿Por qué este Apache 2.2 mod_rewrite RewriteRule no funciona en 403?

¿Por qué este Apache 2.2 mod_rewrite RewriteRule no funciona en 403?

En mi httpd.conftengo:

<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
</FilesMatch>

Y en mi .htaccessarchivo tengo:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Cuando hago HTTP, example.com/.htespero ser redirigido a www.example.com/.ht, pero en cambio, RewriteRule nunca sucede. El cliente nunca es redirigido a www. En todos los demás casos, el cliente es redirigido correctamente.

No tengo ninguna directiva ErrorDocument.

Me pregunto por qué sucede esto y cómo corregir este comportamiento en los 403.

Respuesta1

Dado que tiene acceso a httpd.conf, no hay motivo para utilizar .htaccess.

¿En qué contexto está FilesMatch? ¿Está dentro de un vhost?

Lo siguiente logra el mismo resultado, pero mejor:

<VirtualHost *:80>
  ServerName example.com
  Redirect / http://www.example.com/
</VirtualHost>

<VirtualHost *:80>
  ServerName www.example.com
  DocumentRoot /var/www/something
</VirtualHost>

Tampoco hay efectos secundarios extraños.

información relacionada