2020-03-18
國內很多虛擬主機都不支持綁定二級目錄,如thinkphp框架需要設置運行目錄public, 虛擬主機站點都是默認的wwwroot目錄,虛擬主機的默認跟目錄是無法修改的。
但是thinkphp程序部分程序在開發的時候沒有調整對應的程序入口,就需要網站訪問默認指向到Public目錄。
為了使用網站可以正常訪問,可以在網站根目錄下添加相應的偽靜態規則,將對應的訪問直接調整到Public目錄
apache下偽靜態規則:
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} !^/public/ RewriteRule ^(.*)$ /public/$1 [L] </IfModule>
保存命名為.htaccess(注意有點)
IIS7下偽靜態規則:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="public" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{URL}" pattern="^/public/" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="/public/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
保存命名為web.config,上傳到網站wwwroot目錄。
由于涉及到偽靜態方面的問題,有些應用配置可能不適用,可以在主機控制面板點擊設置首頁功能按鈕,在里面直接輸入public/index.php來指定。