1

我正在开发一个依赖于以下 htaccess 文件的站点,以通过在系统上不存在指定的 url 时重定向到 index.php 来创建一些虚拟目录结构。

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,甚至是根 domain.com 下载 index.php

如果我尝试加载网站中存在的特定文件,例如 domain.com/index.php,那么它会正确解析并显示在浏览器中。

万一这很重要,我的开发环境在 Zend Server Community Edition 上配置了一个虚拟主机。

4

1 回答 1

2

我想您已经在开发服务器中为所有带有*.php扩展名的文件配置了 PHP。这意味着在您的.htaccess文件中再次执行此操作不仅没有必要,而且可能会取消您的服务器配置(正如它实际所做的那样)。因此,您需要摆脱这一行:

AddHandler php5-script .php

问题是为什么它首先存在。我希望默认配置任何支持 PHP 的托管服务:-?

于 2011-11-29T19:05:22.263 回答