首页 > 解决方案 > php用CSS和JS重写规则htaccess问题

问题描述

将重写规则应用于我的页面时遇到了一些麻烦。

我的方案如下:

Assets (contains all subfolders with JS, CSS, IMG, etc)
header.php
footer.php
index.php (that have all links to all other files -> index.php?id=page

现在,我在创建二级重写规则时遇到了一些麻烦。例如,我有页面:

edit-language -> that opens the page index.php?id=edit-language

此页面列出了所有语言并有一些选项供用户选择:

edit-language/delete/X -> opens the same page above but with &delete=X -> both X are the ID
edit-language/publish/X -> opens the same page above but with &publish=X -> both X are the ID

现在,我对主页的重写规则:

RewriteRule ^edit-lang/?$ index.php?id=edit-lang [L]

这很好用,但是当我为另一个级别 /something/something 创建规则时,它丢失了所有 CSS 文件。例如:

RewriteRule ^edit-lang/delete/(.*)$ index.php?id=edit-lang&delete=$1 [L]

我所有的资产都被加载到像 src="assets/js/..." 这样的页眉和页脚 PHP 文件中

有人能帮助我吗?谢谢!

标签: php.htaccess

解决方案


我在这里猜一猜-您使用的是相对链接吗?

src="css/some.css"

这从当前文件夹中查找。由于您现在处于不同的文件夹级别,因此文件不可用并且会 404。

始终使用以斜杠开头的绝对链接,如下所示:

src="/css/some.css"

这样,它将从您的站点根目录开始查找,而不再是 404。


推荐阅读