【发布时间】:2014-04-12 15:21:15
【问题描述】:
我正在尝试设置我的.htaccess 文件以将用户发送到我的网站空间上与 CakePHP 无关的单独文件夹。它与站点的逻辑无关,主要用于测试、部署挂钩等,所以 CakePHP 路由不是我所追求的。
我希望转到 mysite.com/test 的用户能够访问我的主机提供给我的公共 html 级别的 /test 文件夹(而不是寻找 TestsController)。
这是我在根目录.htaccess中的内容
Options -Indexes
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^test/?$ test/ [L]
RewriteRule (.*) app/webroot/$1 [L]
RewriteRule ^$ app/webroot/ [L]
</IfModule>
但输入mysite.com/test 会警告我
Error: TestController could not be found.
Error: Create the class TestController below in file: app/Controller/TestController.php
我认为RewriteRules 自上而下使用[L] 忽略后续行。然而,情况似乎并非如此。删除app/webroot 引用是我可以访问test/ 文件夹的唯一方法(即忽略CakePHP 甚至存在)。
我在这里做错了什么?
【问题讨论】:
-
与调试重写时一样:开启日志记录!
RewriteLog和RewriteLogLevel选项允许详细查看重写模块内部发生的情况。不要在黑暗中飞行,而是睁开眼睛! -
感谢@arkascha,现在就试试吧
-
哎呀,
RewriteLog已被弃用(无法使用新方法)
标签: php .htaccess cakephp mod-rewrite