Zend Framework有CamelCase控制器名称的问题?

时间:2012-04-29 12:59:48

标签: zend-framework .htaccess routes zend-route camelcasing

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

我的.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]

本地计算机上不会发生此错误,仅在服务器上发生。对于服务器上出现“ Page Not Found ”错误的控制器,我唯一能看到的是控制器名称是驼峰式的。

工作的控制器:CustomerController,InvoiceController,StockController。失败的控制器:SuppliersStockController,StockTypesController。

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

1 个答案:

答案 0 :(得分:8)

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

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

如果你转到/stock-types/index,那么ZF会寻找StockTypesController.php并在Linux上找到它。

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