#php #apache #.htaccess #mod-rewrite #mamp
#php #apache #.htaccess #модификация-переписать #mamp
Вопрос:
Я пытаюсь настроить веб-сайт на своем Mac с помощью MAMP. Я поместил содержимое своего веб-сайта в папку под
/Приложения/MAMP/htdocs/positweb
«positweb» содержит index.php который пытается выполнить это перенаправление:
header("Location: web/main");
Вдоль index.php У меня есть файл .htaccess, который поставляется вместе с веб-сайтом:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Я также включил «Разрешить переопределение всех» внутри
<Directory "/Applications/MAMP/Library/htdocs">
элемент в обоих файлах httpd.conf и httpd-std.conf.
Теперь моя проблема в том, что эти перенаправления не работают в моей настройке. Chrome сообщает, что ссылка «http://localhost/positweb/web/main » сломан, Firefox говорит, что index.php не найден.
Все файлы php /.htaccess являются точными копиями рабочей версии сайта. Я попытался поиграть с настройками Apache, как я описал выше, но безуспешно, и теперь я не знаю, что еще попробовать.
Моя версия MAMP 1.9.5.
Приветствуются любые предложения. Спасибо.
Комментарии:
1. После просмотра php-скриптов, поставляемых с веб-сайтом, кажется, что all .htaccess предназначен для перенаправления всех URL-адресов на index.php , который, в свою очередь, вызывает
header("Location: web/main");
. Дело в том, что в папке scripts нет каталога ‘main’, однако есть web.php скрипт, и, судя по содержимому этого скрипта, он предназначен для захватаweb/main
заголовка, разбора токена, который идет после ‘web /’, и принятия мер на основе того, что это за токен (в моем случае токен является ‘main’). (продолжение …)2. … Итак, если я, например, заменю описанный выше вызов header (…) чем-то вроде
header("Location: web.php")
, то он загрузится web.php , но теперь$_SERVER["REQUEST_URI"]
не содержит токенов, поэтому скрипт ничего не делает.
Ответ №1:
Попробуйте изменить свой base_url
в bootstrap.php от /
до /positweb
Комментарии:
1. Привет, Дэйв, я пытался это сделать, но он просто входит в бесконечный цикл, пытаясь перенаправить меня на что-то вроде:
http://localhost/positweb/web/web/web/web/web/web/web/web/web/web/web/web/web/web/web/web/web/web/web/web/web/main
2. Это потому, что перенаправление, которое вы настроили в верхней части index.php просто перенаправляет на себя. удалите
header("Location: web/main");
и при необходимости используйте маршрут
Ответ №2:
И убедитесь, что она у вас FollowSymLinks
включена в вашем httpd.conf
.
Комментарии:
1. У меня был
Options All
установлен для directory<Directory "/Applications/MAMP/htdocs">
, который, как я понимаю, включает в себя следующие ссылки, я пытался включить этот флаг явно, но безуспешно.