在新的Yii2应用程序

时间:2015-05-21 13:28:52

标签: php nginx routing yii2

我的旧网站上有一个URL到某个WebAPI界面,脚本位于:

http://www.example.com/interface/api.php

我将所有内容迁移到Yii2,我无法在Yii2中找到如何处理此重定向路由,因此我可以直接在Yii2的控制器中处理它。

我已尝试过我的urlManager设置

[ 'pattern' => 'interface/api', 'route' => 'site/interface-api', 'suffix' => '.php' ],

但是nginx会出现自己的错误消息。它似乎是" .php"这里的扩展是问题,nginx在Yii2之前先控制。

有没有办法在Yii2中处理它,还是我必须使用nginx设置?

1 个答案:

答案 0 :(得分:-1)

.htaccess文件夹中添加web文件,重定向到index.php

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php

在配置中试试这个:

'components' => [
  'urlManager' => [
    'suffix' => '.php',
    'enablePrettyUrl' => true,
    'showScriptName' => false,
    'rules' => [
        'interface/api' => 'site/interface-api'
    ]
  ],
],

更新nginx:

location / {
        index  index.html $yii_bootstrap;
        try_files $uri $uri/ /$yii_bootstrap?$args;
    }

将此配置添加到您的nginx配置中。完整指南here