我有一个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/”之类的操作,我会收到“应用程序错误”。
答案 0 :(得分:8)
您正在看到区分大小写的文件系统的效果。
当您转到/stocktypes/index
时,ZF将寻找StocktypesController.php
并在Mac OS X和Windows等不区分大小写的系统上取得成功。然而,在Linux上,它将失败。
如果你转到/stock-types/index
,那么ZF会寻找StockTypesController.php
并在Linux上找到它。
如果ZF找到CamelCased控制器名称,那么它将查找带有连字符的视图文件夹。