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

Apache2 mod_rewrite + userdir

У меня есть сервер Ubuntu (веб) со следующей конфигурацией

Проблема

Когда я пытаюсь использовать правила перезаписи, например foo.bar.com/~«user»/page, Я получил

Запрошенный URL /home/«user»/public_html/page.php не был найден на этом сервере.

Насколько я знаю, он там есть; когда я приезжаю foo.bar.com/~«user»/page.php; тада! это там.

Я прочитал все свои конфигурации под /etc/apache2/apache2.conf, /etc/apache2/mods-available/userdir.conf но мне ничего странного не показалось.

Дополнительная информация

Разрешения для пользователя foder: drwx r-x r-x

Разрешения для public_html drwx r-x r-x

Я прочитал, что мне нужно предоставить базу для перезаписи, но я действительно не вижу ничего странного в пути

Что я скучаю?


Правила перезаписи:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Или

RewriteRule ^login/?  login.php [L]

Кстати, я попытался переместить каталог в / var / www, и теперь правила перезаписи работают без ошибок 404.

Кажется, у тебя нет RewriteBase установлен, поэтому, скорее всего, по умолчанию:

RewriteBase /

Итак, если вы хотите использовать его для userdir возможно, вам следует изменить правила перезаписи в файле конфигурации Apache - в apache2.conf или httpd.conf- быть таким:

RewriteEngine on
RewriteBase /~username/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Я нашел это на ubuntuforums.org:

RewriteBase /~username/

http://ubuntuforums.org/showthread.php?t=1196217