我想在yii2 rest api上使用干净的网址。
我为我的前端应用程序提供了干净的网址,但是我没有为我的yii2 rest api应用程序创建干净的网址。
我按照教程(Yii2: RESTful api: tutorial)创建了其余的api。其余的api使用模块进行版本控制。
已创建两个.htaccess文件。 我的根目录中的一个文件和我的" api / web"中的另一个文件。 。目录
root .htaccess文件
RewriteEngine on
# prevent directory listings
Options -Indexes
IndexIgnore */*
# follow symbolic links
Options FollowSymlinks
RewriteCond %{HTTP_HOST} ^api.localhost [NC]
RewriteRule ^(.*)$ api/web/$1 [L,PT]
' API /网络' .htaccess文件
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule ^(.*)\?*$ index.php?r=$1 [L,QSA]
浏览' http://api.localhost.com/v1/music'给出了404页面找不到错误。
虽然' http://api.localhost.com/api/web/v1/music'返回结果
(我想在我的网址中隐藏' api / web /'
答案 0 :(得分:1)
'request' => [
'baseUrl' => str_replace('/api/web', '', (new \yii\web\Request())->getBaseUrl()),
],
在主api配置中添加此请求组件配置
答案 1 :(得分:-2)
配置主机文件以查找/ project_folder / api / web