Я в настоящее время выполняю 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.
Я погуглил когда-либо проживание **** из этой проблемы, и я ничего никогда не получал кроме ошибки выше.
Если бы у кого-либо есть какие-либо идеи, я был бы очень благодарен.
Для других я придумал ответ:
В файле "/ etc / apache2 / sites-enabled / 000-default" там была строка:
AllowOverride None
Измените это на:
AllowOverride All
При использовании mod_rewrite в файле .htaccess необходимо удалить префикс контекстного пути из шаблона. В случае с корневой директорией префикс пути просто /
. Поэтому попробуйте следующее:
RewriteRule ^doesnotexist/(.*)$ /page.php?p=$1