htaccess вызывает загрузку index.php - PullRequest
1 голос
/ 29 ноября 2011

Я работаю над сайтом, который зависит от следующего файла 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, или даже корневой домен.com, загружает index.php

Если я попытаюсь загрузить определенный файл, который существует на веб-сайте, например domain.com/index.php, он будет правильно проанализирован и отображен в браузере.

На случай, если это имеет значение, моя среда разработки настроена на использование виртуального хоста в Zend Server Community Edition.

1 Ответ

2 голосов
/ 29 ноября 2011

Полагаю, вы уже настроили PHP на своем сервере разработки для всех файлов с расширением *.php.Это означает, что повторение этого в ваших .htaccess файлах не только не нужно, но и может отменить конфигурацию вашего сервера (как это происходит на самом деле).Таким образом, вам нужно избавиться от этой строки:

AddHandler php5-script .php

Вопрос в том, почему она существует в первую очередь.Я ожидаю, что любой хостинг с поддержкой PHP будет настроен по умолчанию: -?

...