【问题标题】:Routing static folder name in CakePHP在 CakePHP 中路由静态文件夹名称
【发布时间】:2012-11-01 07:37:31
【问题描述】:

我在浏览器中试过这个:

http://example.com/contact

然后我得到“Controller class ContactController could not be found”错误

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

我试过了:

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

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

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

【问题讨论】:

  • 你能把联系人文件夹放在webroot里面吗?
  • 戴夫说了什么!如果您将联系人文件夹放在 /app/webroot 中,Cake 就会知道在哪里找到它:-)

标签: php cakephp redirect routing cakephp-2.0


【解决方案1】:

可以添加 mod_rewrite 规则。

假设你的应用路径是:

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

将您的文件夹“联系人”添加到

/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>

【讨论】:

  • .htaccess 解决这个问题比 routes.php 更好。非常感谢。
  • 天哪……!!社区已经完全用“CakePHP 方式”cr@p 破坏了我的大脑。我完全忘记了我可以直接玩 .htaccess 而不是在 routes.php 中玩。谢啦!干杯
猜你喜欢
  • 2012-01-30
  • 2019-05-22
  • 2011-10-24
  • 2015-05-26
  • 2010-10-19
  • 2013-06-27
  • 1970-01-01
  • 2022-07-11
  • 1970-01-01
相关资源
最近更新 更多