RewriteRule绕过CakePHP

时间:2014-04-12 07:00:29

标签: php .htaccess cakephp mod-rewrite

我正在尝试设置我的.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甚至存在)。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

一种选择是在蛋糕应用重写规则上使用RewriteCond。类似的东西:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/test/
RewriteRule (.*) app/webroot/$1 [L]
#RewriteRule ^$ app/webroot/ [L]