首页 > 后端开发 > php教程 > 如何防止URL重写后CSS、JS、图片加载问题?

如何防止URL重写后CSS、JS、图片加载问题?

Linda Hamilton
发布: 2024-12-02 19:09:15
原创
166 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板