URL 重寫:解決CSS、JS 和圖片載入失敗的問題
在.htaccess 中實作URL 重寫規則時,會出現一個常見問題CSS、JS 和映像等外部資源無法正確載入。這可以歸因於重定向發生時 URI 基底的變化。
最初的解決方案涉及使用絕對路徑,這可以確保無論頁面的 URL 是什麼,資源都可以找到。然而,這需要對所有文件進行繁瑣的修改,使其成為不可靠的解決方案。
另一種方法利用 .htaccess 規則來建立一致的基本 URI:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteRule ^detail/([0-9]+)/?$ detail.php?id= RewriteEngine On RewriteCond %{REQUEST_URI} !^/css/ RewriteCond %{REQUEST_URI} !^/js/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /detail/123/ [R=307,L]
此規則確保所有外部資產是從 /detail/123/ URL 引用的。 [R=307,L] 標誌將請求重定向到正確的基本 URI (/detail/123/),有效解決資源載入問題,而不需要絕對路徑。
與此結合,您可以新增
內的標籤頁元素:<base href="/detail/123/">
這進一步鞏固了基本 URI 並使相對路徑能夠正常運作。透過實施這些規則,您可以保持 URL 重寫,同時避免編輯單一文件,從而確保無縫的使用者體驗。
以上是URL重寫後如何解決CSS、JS、圖片載入問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!