Вырываю волосы с помощью mod_rewrite и MAMP

#mod-rewrite #osx-snow-leopard #mamp

#переписать мод #osx-snow-leopard #mamp

Вопрос:

Я использую MAMP и не могу заставить mod_rewrites работать.

После долгой игры с многочисленными файлами http.conf, а затем, наконец, посмотрел на мой php_info, там не установлен mod_rewrite exstension.

Я открыл файлы php.ini в приложениях> MAMP> conf> php5.2 amp; php5.3 и посмотрел на расширения, и там не было mod_rewrite.so . Все, что я вижу, это:

 extension=imap.so
extension=yaz.so
extension=mcrypt.so
extension=gettext.so
extension=pgsql.so
extension=pdo_pgsql.so
extension=pdo_mysql.so
  

Я добавил это, ожидая удачи — но никакой радости!

Комментарии:

1. Правильно, я обнаружил, что mod_rewrite находится в загруженных модулях, что возвращает меня к квадрату 1.

2. Хм, ты забыл включить RewriteEngine?

3. вы устанавливали mod_rewrite, когда устанавливали MAMP? Убедитесь, что вы вообще включили это в свою установку, затем попробуйте просто добавить extension=mod_rewrite.so . если это не сработает, убедитесь, что у вас включен движок перезаписи и т.д.

Ответ №1:

У меня была такая же проблема, и, надеюсь, это решит ее для вас.

Я добавил свой сайт в свой хост-файл, поэтому вместо того, чтобы проходить через locahost /….. У него был свой собственный URL, который я перенаправил на 127.0.0.1. т. е. мой хост-файл выглядел следующим образом

127.0.0.1 мой сайт.Местные новости

Затем я настроил виртуальный хост в MAMP. Файл vhosts.conf вы найдете в /Applications/MAMP /conf /apache

Мой хост-файл выглядит следующим образом

 NameVirtualHost *
<VirtualHost *>
    DocumentRoot "/Applications/MAMP/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *>
    DocumentRoot "/Applications/MAMP/htdocs/mysite-folder"
    ServerName mysite.local
</VirtualHost>
  

Надеюсь, это поможет: D

Комментарии:

1. Я попробовал ваше предложение виртуального хостинга, и оно не сработало. для чего используется второе имя сервера, просто для именования? Спасибо

2. Обратите внимание, что со вторым виртуальным хостом («/Applications/MAMP/htdocs /mysite-folder») вам пришлось бы добавить AllowOverride All внутри <Directory> , чтобы mod_rewrite заработал.

3. В моем случае мне не нужно было этого делать, я думаю, вам это нужно, если вы переписываете URL, но поправьте меня, если я ошибаюсь. Первое имя сервера — это универсальный локальный хост, вы должны сохранить его там. Второе имя сервера и все последующие должны быть привязаны к конкретному сайту. Не забудьте перезапустить MAMP и перезагрузить файл host при внесении каких-либо изменений.