3 votes

mod_rewrite ajoute documentroot à l'url

Les redirections de réécriture suivantes http://example.com/ a http://example.com/www/www.example.com/public_html au lieu de http://www.example.com/ . /www/www.example.com/public_html est le DocumentRoot .

# Rewrite Rules for Example
RewriteEngine On
RewriteBase /

# Redirect from example.com to www.example.com
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

Cette redirection se fait dans un <VirtualHost *:80> avec les paramètres :

ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com

Options +FollowSymLinks
DocumentRoot /www/www.example.com/public_html

and the rewrite is inside <Directory />

Vous avez une idée de la raison pour laquelle cela se produit ? J'ai regardé dans le Manuel Apache et il est dit qu'en utilisant ${HTTP_HOST} dans votre RewriteCond ajoutera l'hôte à la liste RewriteRule au lieu de la seule URL-Path . C'est une réécriture TRÈS courante, et je n'ai jamais vu cela auparavant.

2voto

z-boss Points 4033

Le problème était <Directory /> . Une fois que je l'ai mis à jour en <Directory /www/www.example.com/public_html> ça a bien marché.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X