首頁 >後端開發 >php教程 >如何防止URL重寫後CSS、JS、圖片載入問題?

如何防止URL重寫後CSS、JS、圖片載入問題?

Linda Hamilton
Linda Hamilton原創
2024-12-02 19:09:15168瀏覽

How to Prevent CSS, JS, and Image Loading Issues After URL Rewriting?

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn