Cakephp路由规则,如.htaccess

时间:2013-11-07 12:16:23

标签: php .htaccess cakephp

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

我在.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

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

1 个答案:

答案 0 :(得分:2)

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