【问题标题】:Cakephp routing rule like .htaccessCakephp 路由规则,例如 .htaccess
【发布时间】:2023-03-03 13:29:01
【问题描述】:

我想稍微擦除和清理我的代码。

我在 .htaccess 中有这个规则

   RewriteRule ^(.+),(.+),(.+),([0-9]+).php$ /hotels/description/$4/3
   RewriteRule ^(.+)+(.+)-([0-9]+).php$ /hotels/description/$3/4
   RewriteRule ^([0-9]+).php.*$ /hotels/description/$1/1
   RewriteRule ^([0-9]+).htm.*$ /hotels/description/$1/2

我想消除它并制定 cakephp 路由规则。

我需要这样的东西:

Router::connect('/:descId',
    array('controler' => 'hotels', 'action' => 'description'),
    array(
        'descId' => '[0-9]+'
    ),
    array('pass'=>array('descId'))
);

遗憾的是,这根本不起作用。它正在寻找控制器。导致验证 [0-9] 不起作用。

Missing Controller

Error: 18182.phpController could not be found.

Error: Create the class 18182.phpController below in file: app\controllers\18182.php_controller.php

<?php
class 18182.phpController extends AppController {

    var $name = '18182.php';
}
?>

只有删除规则才能让它工作。

Router::connect('/:descId',
    array('controler' => 'hotels', 'action' => 'description'),
    array('pass'=>array('descId'))
);

问题将是我何时为链接制定另一个规则,例如:

domain.com/Country,Region,Hotel,Number.php

有人可以帮我写这些规则吗?

【问题讨论】:

    标签: php .htaccess cakephp


    【解决方案1】:
    Router::connect('/:descId',
        array('controller' => 'hotels', 'action' => 'description'),
        array(
            'pass' => array('descId'),
            'descId' => '[0-9]+',
    ));
    

    【讨论】:

    • 其实我现在自己做的,但是感谢您的帮助。 cakebook 中有错误的例子,所以我被它弄错了。我的工作示例:Router::connect('/:gid.php', array('controller' => 'hotels', 'action' => 'description'),array('gid' => '[0-9 ]+','pass'=>数组('gid')));
    猜你喜欢
    • 1970-01-01
    • 2012-12-27
    • 2015-02-06
    • 1970-01-01
    • 2013-01-04
    • 1970-01-01
    • 2018-10-23
    • 2013-06-22
    • 1970-01-01
    相关资源
    最近更新 更多