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中文网其他相关文章!