配置yii程序支持虛擬主機的方法

配置yii程序支持虛擬主機的方法

一、將frontend/web/的程序復制到根目錄下

二、將index.php的程序做如下修改:

<?php defined(&#39;YII_DEBUG&#39;) or define(&#39;YII_DEBUG&#39;, true); defined(&#39;YII_ENV&#39;) or define(&#39;YII_ENV&#39;, &#39;dev&#39;);   require __DIR__ . &#39;/vendor/autoload.php&#39;; require __DIR__ . &#39;/vendor/yiisoft/yii2/Yii.php&#39;; require __DIR__ . &#39;/common/config/bootstrap.php&#39;; require __DIR__ . &#39;/frontend/config/bootstrap.php&#39;;   $config = yiihelpersArrayHelper::merge(     require __DIR__ . &#39;/common/config/main.php&#39;,     require __DIR__ . &#39;/common/config/main-local.php&#39;,     require __DIR__ . &#39;/frontend/config/main.php&#39;,     require __DIR__ . &#39;/frontend/config/main-local.php&#39; );   (new yiiwebApplication($config))->run();

三、將frontend下的目錄web目錄刪除

四、在將api端實現為:www.***.com/api/web/site/login的模式時,發現實現不了,好像是調用不到index.php及控制器也調用不了。于是做了各種猜想,一步一步排除法排查問題,排除法是在不知底層的情況下發現問題和解決問題的好辦法。

與之對應的就是讀底層代碼,但這樣雖然能解決問題,速度會更慢。最后發現可以將.haccess的代碼改為以下形式實現了隱藏index.php及實現偽靜態:

<ifmodule> 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教程

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享