在CakePHP中路由静态文件夹名称

时间:2012-11-12 20:37:36

标签: php cakephp redirect routing cakephp-2.0

我在浏览器中试过这个:

http://example.com/contact

然后我得到“无法找到控制器类ContactController ”错误

它不存在,因为“contact”是不属于CakePHP应用程序的文件夹名称。它里面有2个php文件,但它们可以独立运行。它们不是CakePHP应用程序文件。

我试过了:

Router::redirect('/contact/*', 'http://example.com/contact/',
    array('status' => 302));

但是我从浏览器中得到了这个错误 “此网页有重定向循环

如何进行重定向,以免出现此错误?

1 个答案:

答案 0 :(得分:5)

可以添加mod_rewrite规则。

假设您的应用路径为:

/var/www/
/var/www/app
/var/www/app/webroot

将您的文件夹“contact”添加到

/var/www/contact

找到CakePHP .htaccess
/var/www/.htaccess

这是原始内容:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

在“RewriteEngine on”行

之后添加规则
RewriteRule  ^contact -               [L]

看起来像这样

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule  ^contact -           [L]
   RewriteRule    ^$ app/webroot/    [L]
   RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>