RewriteRule в .htaccess, не работающем

Я в настоящее время выполняю Apache2 на своей локальной машине, установленной с последней версией Ubuntu.

Я пытаюсь получить основную перезапись URL, работающую при помощи .htaccess файла.

Файл "http://localhost/page.php?=home" действительно существует, и местоположение "/doesnotexist/home" не делает.

Я хотел бы иметь первую страницу быть загруженным, когда второе требуют.

Мой .htaccess файл похож на это:

RewriteEngine On
RewriteRule ^/doesnotexist/(.*)$ /page.php?p=$1 

Мой httpd.conf файл похож на это:

LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so


    AllowOverride All

Обратите внимание, что мой httpd.conf файл точно походит на это, поскольку это было пусто, прежде чем я отредактировал его.

Результат, который я получаю, является этим:

Not Found

The requested URL /doesnotexist/home was not found on this server.

Я погуглил когда-либо проживание **** из этой проблемы, и я ничего никогда не получал кроме ошибки выше.

Если бы у кого-либо есть какие-либо идеи, я был бы очень благодарен.

6
задан riwalk 3 February 2010 в 17:55
поделиться

2 ответа

Для других я придумал ответ:

В файле "/ etc / apache2 / sites-enabled / 000-default" там была строка:

AllowOverride None

Измените это на:

AllowOverride All
22
ответ дан 8 December 2019 в 04:29
поделиться

При использовании mod_rewrite в файле .htaccess необходимо удалить префикс контекстного пути из шаблона. В случае с корневой директорией префикс пути просто /. Поэтому попробуйте следующее:

RewriteRule ^doesnotexist/(.*)$ /page.php?p=$1
3
ответ дан 8 December 2019 в 04:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: