У меня есть сервер 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/