我將所有鏈接重定向到“公共”目錄寬度:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /public/$1 [L,QSA,NC]
但它總是給我“500 內部服務器錯誤”
如果我寫了 concrent 路徑它會起作用
RewriteEngine on
RewriteBase /
RewriteRule ^(.*)$ /public/page/
但是如果我把動態變數 $i 給我 500 錯誤
uj5u.com熱心網友回復:
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /public/$1 [L,QSA,NC]
這將導致重寫回圈(500 錯誤),除非它重寫到物理檔案。您需要確保只重寫直接請求。您可以通過檢查環境REDIRECT_STATUS變數來做到這一點。
例如:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) public/$1 [L]
在QSA和NC標志在這里不需要。
或者,END在 Apache 2.4 上改用該標志:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) public/$1 [END]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/392405.html
上一篇:以編程方式修改JNDI連接池
