Назад | Перейти на главную страницу

mod_rewrite добавление корня документа к url

Следующие перенаправления перезаписи http://example.com/ к http://example.com/www/www.example.com/public_html вместо того http://www.example.com/. /www/www.example.com/public_html это 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]

Это перенаправление находится в <VirtualHost *:80> с настройками:

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

Есть идеи, почему он это сделал? Я заглянул в Руководство по Apache и он говорит, что использование ${HTTP_HOST} в твоем RewriteCond добавит хост в RewriteRule вместо просто URL-путь. Что ж, это ОЧЕНЬ распространенная переписывание, и я никогда раньше не видел, чтобы это происходило.

Проблема была в <Directory />. Как только я обновил его до <Directory /www/www.example.com/public_html> он работал нормально.