一、將frontend/web/的程式複製到根目錄下
#二、將index.php的程式做如下修改:
<?php defined('YII_DEBUG') or define('YII_DEBUG', true); defined('YII_ENV') or define('YII_ENV', 'dev'); require __DIR__ . '/vendor/autoload.php'; require __DIR__ . '/vendor/yiisoft/yii2/Yii.php'; require __DIR__ . '/common/config/bootstrap.php'; require __DIR__ . '/frontend/config/bootstrap.php'; $config = yii\helpers\ArrayHelper::merge( require __DIR__ . '/common/config/main.php', require __DIR__ . '/common/config/main-local.php', require __DIR__ . '/frontend/config/main.php', require __DIR__ . '/frontend/config/main-local.php' ); (new yii\web\Application($config))->run();
三、將frontend下的目錄web目錄刪除
四、在將api端實作為:www.***.com/api/web/site/login的模式時,發現實作不了,好像是呼叫不到index.php及控制器也呼叫不了。於是做了各種猜想,一步一步排除法排查問題,排除法是在不知底層的情況下發現問題和解決問題的好方法。
與之對應的就是讀底層程式碼,但這樣雖然能解決問題,速度會更慢。最後發現可以將.haccess的程式碼改為以下形式實作了隱藏index.php及實作偽靜態:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /api/web/index.php [L] </IfModule>
在調試api的過程中發現www.***.com/api/web/articles在瀏覽器裡面查看程式碼時,無法顯示xml數據,或是下載.json的提示,後來發現是選擇了360瀏覽器的相容模式,改為極速模式就好了。在postman裡面測試資料時是成功的。
推薦教學:YII教學
以上是配置yii程式支援虛擬主機的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!