最近碰到一個棘手的問題,在使用護衛神或者主機寶等IIS環境配置PHP的時候,不能把public設置為網站根目錄(因為Thinkphp的安全要求:要將public設置為對外公開目錄),這個問題無法搜索到真實解決辦法,那么我們應該如何將運行目錄設置為/public呢?
當我們使用護衛神的IIS配置Thinkphp時,發現Thinkphp的運行目錄public在護衛神里無法設置為運行目錄,系統創建的網站默認根目錄為web里面的內容。銀天科技小編經過大量的試驗,終於找到到最終的解決辦法。
其實護衛神是使用IIS來部署THINKPHP的,所以所有使用IIS部署的網站,用這個方法也一樣可以有效解決。
一、我們需要創建一個域名為其他的網站(如下圖)

二、在網站里建一個子站,自站的目錄是public,域名填寫你真實的域名(如下圖)

三、運行網站,這時候的網站能訪問,但是你會發現內容不跳轉,訪問域名+Index.php能訪問,但是訪問域名卻報404之類的錯誤,原因在於route,也就是url重寫,偽靜態不生效(如下圖)

四、我們只需要在public里面創建一個web.config文件,注意文件的編碼跟上網站的編碼,web.config里面的內容如下,(此處無法給出下載連接,有需要的請到原文提供的下載連接下載)

五、這時候再訪問域名,你就會發現偽靜態已經生效了,網站部署也已經大功告成了!
這個方法適用於使用IIS部署TP5,護衛神部署TP5。
原文出自https://www.gzytsoft.com/a/news/zhanchangshizhan/2019/0507/646.html,轉載請標明出處。