fragen stichworte

mod_rewrite fügt documentroot zu url hinzu

Das folgende Umschreiben führt http://example.com/ zu http://example.com/www/www.example.com/public_html anstelle von http://www.example.com/. /www/www.example.com/public_html ist der 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]

Diese Weiterleitung befindet sich in einem <VirtualHost *:80> mit den Einstellungen:

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/>

Irgendwelche Ideen, warum dies so wäre? Ich habe mir das Apache-Handbuch angesehen und besagt, dass mit ${HTTP_HOST} in Ihrem RewriteCond der Host dem RewriteRule statt nur des URL-Pfads. Nun, dies ist eine sehr häufige Umschreibung, und ich habe noch nie gesehen, dass dies passiert.

antworten

Das Problem war <Directory/>. Nachdem ich es auf <Directory/www/www.example.com/public_html> aktualisiert hatte, hat es gut funktioniert.