URL重寫:解決CSS、JS、圖片的載入問題
URL重寫中,常常會遇到CSS、JS的載入場景,並且圖像檔案在重定向後停止載入。當使用相對路徑並且重新導向規則修改基本 URL 時,通常會出現此問題。
為了說明這一點,請考慮以下配置:
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteRule ^detail/([0-9]+)/?$ detail.php?id=
在這種情況下,規則重定向URL,例如“http://localhost/detail/123”到“ http://localhost/detail.php?id=123」。雖然重定向成功,但位於「http://localhost/css/」和「http://localhost/js/」中的 CSS、JS 和圖片檔案無法加載,因為相對路徑不再有效。
解決問題
一個常見的解決方案是將相對路徑更改為絕對路徑,例如“/css/”和“/js/”。但是,這種方法需要手動編輯多個文件,因此不被認為是可靠的解決方案。
使用.htaccess 規則的替代解決方案
在保留相對路徑的同時解決此問題,請考慮以下解決方案:
在. htaccess 檔案中插入以下行在 RewriteRule語句之前:
RewriteBase /
這可確保即使在重定向後基本 URI 仍保留“/”,從而解決相對路徑的問題。
範例:
經過上述修改,現在出現.htaccess 檔案如下:
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteRule ^detail/([0-9]+)/?$ detail.php?id=
注意:
注意:請記住將“RewriteBase /”行放在任何RewriteRule 語句之前。以上是如何防止URL重寫後CSS、JS、圖片載入問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!