加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Url重写断开链接到css

发布时间:2020-12-13 22:08:20 所属栏目:PHP教程 来源:网络整理
导读:我正在使用以下设置进行网址重写: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$index.php?url=$1 [QSA,L] 在index.php中解析$_GET [‘url’],以便在以下示例中: ROOT/user/id/1/name/bo
我正在使用以下设置进行网址重写:

RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$index.php?url=$1 [QSA,L]

在index.php中解析$_GET [‘url’],以便在以下示例中:

ROOT/user/id/1/name/bobby // user is the page,id = 1,name = bobby
ROOT/blog/post/123/title/welcome // blog is the page,post = 123,title = welcome

因此,第一个参数(?我不知道如何调用它)是页面名称,那么以下几个参数就像“键/值”.
现在,当我浏览ROOT /链接到页面html中插入的样式表并正确显示页面时.
我浏览ROOT /索引(与ROOT /相同)它正确显示页面(包含内容和其他内容),但未加载样式表中的链接(即使在html结构中正确写入).我可以看到,当我加载它时,我的页面根本没有css.

我怎样才能解决这个问题?

编辑

css文件的路径如下:

project/view/css/common.css

它包含的文件位于

project/public/index.php // the one with .htaccess and rewrite rules

这让我想做一个链接(在index.php里面)

../view/css/common.css

但这取决于网址的显示方式.举些例子:

# For URL = public/
project/view/css/common.css // good
# For URL = public/index/
project/public/view/css/common.css // broken
# For URL = public/index/key/value
project/public/index/key/view/css/common.css // broken

解决方法

我认为你有两个问题(因为给定的答案还没有解决你的问题……):

>您正在重写所有文件名,因此当浏览器请求css / index.css时,您的重写会将其转换为index.php?url = css / index.css. @ cOle2的答案应该解决这个问题.
>您没有为css文件使用绝对路径.服务器正在将请求的页面翻译为/ user / id / 1 / name / bobby到/index.php?etc ….但是当浏览器请求例如css文件时,类似于css / index.css代码,它实际上会请求/user/id/1/name/bobby/css/index.css并且该文件不存在.您可以通过仅使用外部文件(css,js,图像等)的绝对路径来解决这个问题,例如/css/index.css.

编辑:根据您的评论,您的路径都是相对的,浏览器无法访问您的CSS,因此您需要:

>将css移动到项目/公共目录(如project / public / css)>使用/css/index.css等css的绝对路径.>确保服务器不会重写外部文件的URL.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读