当 URL 包含尾部斜杠时 Yii1 错误路由

Yii1 wrong route when URL contains trailing slash

我必须支持一个使用 Yii1 的旧项目。我的行为很奇怪。漂亮URL已配置。

当 URL 没有尾部斜杠(例如 /about 或 /blog/post/5)时一切正常(路由正确且显示正确的页面)。但是带有尾部斜杠(/about/ 或 /blog/post/5/)的相同 URLs 会导致错误的路线。忽略 url 我总是得到路由 'main/index' 并显示索引页面(不重定向到,但显示所有 URLs 尾部斜杠)。

有什么想法吗?

我遇到了同样的问题,问题出在 nginx 配置上。 Yii 漂亮的 URL 需要适当的配置才能工作。这很奇怪,但相同的配置在一台服务器上运行良好,但在另一台服务器上产生了所描述的行为。

有问题的配置:

location ~ ^(.+\.(js|css|jpeg|jpg|gif|png|ico|swf|mp3|html|eot|woff|ttf|otf|svg|zip|pdf|xml))$
{
  rewrite ^(.*)/$  permanent;
  try_files $uri /index.php?$args;
}

工作配置:

location /
{
  index  index.php;
  if (!-e $request_filename)
  {
    rewrite ^/(.*) /index.php?r= last;
  }
}