1

我有一个 Zend Framework 应用程序,我一直在我的本地机器上工作,我已经将它部署到服务器上,但是遇到了 .htaccess 问题,因为一些但不是所有路由都失败并出现“ Page Not Found。很奇怪,我无法访问某些控制器。

我的 .htaccess 是:

RewriteBase /~user/path/to/app/public/

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

此错误不会出现在本地机器上,只会出现在服务器上。我能看到的唯一对于在服务器上出现“未找到页面”错误的控制器来说是常见的,那就是控制器名称是驼峰式的。

有效的控制器:CustomerController、InvoiceController、StockController。失败的控制器:SuppliersStockController、StockTypesController。

如果我尝试执行“www.route/to/app/stock-types/”或“/stock.types/”之类的操作,我会收到“应用程序错误”。

4

1 回答 1

8

您将看到区分大小写的文件系统的效果。

当您访问 时,ZF 将在 Mac OS X 和 Windows 等不区分大小写的系统上/stocktypes/index寻找并取得成功。StocktypesController.php但是在 Linux 上,它会失败。

如果您转到/stock-types/index,那么 ZF 将StockTypesController.php在 Linux 上查找并找到它。

如果 ZF 找到 CamelCased 控制器名称,那么它将查找带有连字符的视图文件夹。

于 2012-04-30T07:49:59.367 回答