当 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;
}
}
我必须支持一个使用 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;
}
}