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



我必须支持一个使用 Yii1 的旧项目。我有非常奇怪的行为。漂亮的网址已配置。

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

有什么想法吗?

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

有问题的配置:

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

工作配置:

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

最新更新