0

我看不出 CakePHP 中这条路线有什么问题。

http://www.example.com/board/app-max不会匹配。

这是我的路线

Router::connect(
    '/board/:key',
    array('controller'=>'posts','action'=>'board'),
    array('key'=>'[a-z\-]+')
);

我最终得到一个BoardController未找到的错误。

http://www.example.com/board/app匹配成功。所以我的问题是何时key包含破折号。

编辑:我发现[A-Za-z0-9\-_]+效果很好,但[a-z\-]+没有。

设置详情

  • PHP 5.4.16
  • CakePHP 2.4.1
  • Windows 7的
  • Zend 社区服务器 6.1

.htaccess

<IfModule mod_rewrite.c>
RewriteEngine On

    # Redirect non-www urls to www
    RewriteCond %{HTTP_HOST} !^$
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTPS}s ^on(s)|
    RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    # Rewrite rule for CakePHP
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
4

0 回答 0