使用CakePHP 1.3,我有以下布局:
/srv/www/_cakephp13/
/app/
/cake/
/plugins/
/vendors/
etc...
/srv/www/htdocs/
/cake_app/
/other-dir/
...其中htdocs
是公共目录,我已将我的应用webroot
移至cake_app
以上......似乎几乎强大>工作。 (自定义webroot的index.php之后)。
当我访问http://devserver/cake_app/
时,我能够看到默认的“主页”页面控制器/视图(我已自定义,因此 似乎正在运行)。
但是当我访问http://devserver/cake_app/controller/view
时,我收到 404 错误。
是否可以在站点根目录的子目录中运行Cake App?我怎样才能使这个工作?
理想情况 ,我不想编辑Apache conf ...如果我可以使用Cake配置或htaccess文件修复此问题,我会更高兴。
答案 0 :(得分:2)
您应该验证.htaccess是否正在运行,并且重写模块已打开并正在运行。
答案 1 :(得分:1)
您需要在Apache上启用mod_rewrite。要检查它是否打开,请创建一个只执行此操作的页面:
echo phpinfo():
Grep on the text“loaded modules”。确保在那里列出mod_rewrite。如果不是,您可以将其添加到apache的配置中,或者您可能需要安装它(取决于您的原始安装方法以及是否包含该模块)。
如果你无法运行mod_rewrite,你仍然可以在没有它的情况下使用cake(URL将看起来像index.php / controller / action / etc)。查看http://book.cakephp.org/view/333/A-Note-on-mod_rewrite了解详情。具体地,
如果你不想要或不能得到 mod_rewrite(或其他一些兼容的 模块)在您的服务器上运行, 你需要使用内置的Cake 漂亮的网址。在/app/config/core.php中, 取消注释看起来像这样的行:
配置::写入( 'App.baseUrl', ENV( 'SCRIPT_NAME'));