嗨,这是我的第一个问题,谢谢您的帮助。
在我的网站(使用PHP)中,我有一个名为http://domaine.com/details.php?slug=this-is-a-slug
的页面,我希望它看起来像该http://domaine.com/this-is-a-slug
,并且在同一页面中,details.php
我有分页的系统评论,因此有时URL可能会像用户单击此 http://domaine.com/details.php?slug=this-is-a-slug&page=2
在下一页上查看评论。
在根中我有:
.htaccess file
index.php
details.php
style.css
images/..
js/
css/details.css and other stylelsheet files
details.php
.
.
. others pages and files
所以我在.htaccess文件中写了此代码:
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ details.php?slug=$1
RewriteRule ^([a-zA-Z0-9_-]+)/([0-9]+)/$ details.php?slug=$1&page=$2 [NC,L,QSA]
,URL确实变为http://domaine.com/this-is-a-slug
,但是当我单击分页并且URL成为http://www.domain.com/this-is-a-slug/2/
时。
分页有效,但问题是CSS文件没有加载,我的网站看起来很奇怪?
有人可以帮我吗?
我的猜测是您的CSS使用了相对文件路径uri,例如 styles.css
,而不是绝对(相对于Web目录)uri,例如 /styles.css
。
发生的事情是,当您的URI明显添加了"目录级别"时,通过添加分页参数(如此/this-is-a-slug/2/
)时,浏览器会将对CSS文件的相对路径引用为:
/this-is-a-slug/styles.css
当然,此文件不会在此处退出,您将在页面上获得404错误和N CSS。
您可以查看浏览器的Web开发网络选项卡,以验证您正在获得此404。
例如,您可以更改这样的外部CSS参考:
<link rel="stylesheet" href="styles.css">
:
<link rel="stylesheet" href="/styles.css">
或对于图像,更改类似的内容:
<img src="some_image.jpg">
:
<img src="/some_image.jpg">