htaccess вызывает загрузку index.php
Я работаю над сайтом, который зависит от следующего файла htaccess, чтобы создать что-то вроде структуры виртуального каталога путем перенаправления на index.php всякий раз, когда указанный URL-адрес не существует в системе.
AddHandler php5-script .php
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?p=$1 [L,QSA]
Это, кажется, работает нормально на существующем сервере клиента. Он невидимо перенаправляет такие вещи, как domain.com/checkout на domain.com/index.php?p=checkout
Моя проблема в том, что в моей локальной среде разработки это приводит к тому, что любой несуществующий URL-адрес, такой как domain.com/checkout, или даже root domain.com, чтобы СКАЧАТЬ index.php
Если я пытаюсь загрузить определенный файл, который существует на веб-сайте, например, domain.com/index.php, он правильно анализируется и отображается в браузере.
В случае, если это имеет значение, моя среда разработки настраивается с помощью виртуального хоста на Zend Server Community Edition.
1 ответ
Я полагаю, вы уже настроили PHP на сервере разработки для всех файлов с *.php
расширение. Это означает, что делать это снова в вашем .htaccess
файлы не только не нужны, но и могут отменить конфигурацию вашего сервера (как это и происходит на самом деле). Таким образом вам нужно избавиться от этой строки:
AddHandler php5-script .php
Вопрос в том, почему это там, во-первых. Я ожидаю, что любой хостинг с поддержкой PHP будет настроен по умолчанию:-?