Я пытаюсь использовать mod_rewrite
модуль Apache24 server
, но я не могу его загрузить. Я знаю, что по этой теме было задано много вопросов, я рассмотрел их все, но, похоже, ничего не работает. Это шаги, которым я следовал до сих пор ---
ИЗМЕНЕНО httpd.conf
файл внес эти изменения:
а. Без комментариев LoadModule rewrite_module modules/mod_rewrite.so
б. Изменено AllowOverride None
к AllowOverride All
Перезапущенный сервер Apache
Проверены загруженные модули с помощью команды командной строки httpd -M
. Я вижу там, что модуль mod_rewrite загружен. Прилагаю изображение ниже.
Но после выполнения всех этих шагов я не вижу mod_rewrite как загруженный модуль в phpinfo
.
Как видно на рисунке выше, нет загруженного модуля mod_rewrite. Также в качестве дикого взлома я даже попытался переписать URL-адреса, используя .htaccess
файл, но это не работает. Apache, кажется, игнорирует .htaccess
файл, хотя я поместил этот файл в свой корневой каталог.
Note: I am running `PHP` as an apache module
Using `WAMP` stack
Using `localhost` as server
Мне этот модуль очень нужен для перезаписи URL. Ребята, вы можете предложить какой-нибудь другой способ загрузить этот модуль?
РЕДАКТИРОВАТЬ
Я попытался переписать URL-адрес с виртуального хоста, поскольку ответ предполагает, что модуль загружен и не зависит ни от .htaccess
ни на info.php
.Но по-прежнему он не перенаправляет. Я добавляю Virtual host
настройка ниже ---
<VirtualHost *:80>
<Directory "/Apache24/htdocs">
Options FollowSymLinks
AllowOverride All
DirectoryIndex index.html index.php
</Directory>
ServerName localhost
DocumentRoot "/Apache24/htdocs"
ErrorLog "/Apache24/logs/error.log"
CustomLog "/Apache24/logs/access.log" combined
<directory "/Apache24/htdocs">
<IfModule rewrite_module>
Options +FollowSymlinks
RewriteEngine On
</IfModule>
<IfModule rewrite_module>
RewriteRule ^working.php fun.html
</IfModule>
</directory>
# Rewrite Rules #####################
RewriteEngine On
RewriteRule ^working.php fun.html
# end Rewrite Rules #################
</VirtualHost>
Приведенный выше код не перенаправляет его на working.php
когда я пытаюсь бежать fun.html
. Он просто говорит:
запрошенный URL /working.php не найден на этом сервере.
Судя по вашим связанным снимкам экрана, ваш корень сервера (путь к файловой системе) выглядит следующим образом: C:/Apache24
, но вы не ссылаетесь на C:
в любой из директив конфигурации вашего сервера? Вам нужно указать полный путь к файловой системе, например:
<Directory "C:/Apache24/htdocs">
RewriteRule ^working.php fun.html
Эта директива, используемая непосредственно в VirtualHost (вне <Directory>
контейнер), никогда не будет совпадать. При использовании в контексте VirtualHost (или конфигурации сервера) mod_rewrite соответствует полному пути URL, который, в частности, включает префикс косой черты. Это важное отличие при использовании mod_rewrite - это каталог /.htaccess
контекст (когда префикс косой черты исключен).
Помимо загрузки модуля единственная необходимая директива:
RewriteEngine на
Дополнительно: