我有一个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设置?
在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'
]
],
],
update for nginx:
location / {
index index.html $yii_bootstrap;
try_files $uri $uri/ /$yii_bootstrap?$args;
}
将此配置添加到nginx配置中。完整指南在这里