重写HTACCESS文件失去CSS文件BROBLEM



嗨,这是我的第一个问题,谢谢您的帮助。

在我的网站(使用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">

最新更新