在新的Yii2应用程序中处理旧的PHP脚本路径

在新的Yii2应用程序中处理旧的PHP脚本路径,php,nginx,routing,yii2,Php,Nginx,Routing,Yii2,我在旧站点上有一个指向某个WebAPI接口的URL,脚本位于: http://www.example.com/interface/api.php 我正在将所有内容迁移到Yii2,但我不知道如何在Yii2中处理此重定向路由,因此我可以直接在我的Yii2控制器中处理它 我已尝试在我的urlManager设置中执行此操作 ['pattern'=>'interface/api','route'=>'site/interface-api','suffix'=>'.php'], 但是nginx有它自己的错误

我在旧站点上有一个指向某个WebAPI接口的URL,脚本位于:

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设置?

web
文件夹中添加一个
.htaccess
文件,重定向到
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配置中。完整指南

它不是Apache-它是nginx,不能使用.php后缀和nginx默认设置。更新了我的答案,添加了指南的链接