Поддержка чистых URL в MAMP

#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"> , который, как я понимаю, включает в себя следующие ссылки, я пытался включить этот флаг явно, но безуспешно.