.htaccess 影响 URL 但不影响本地数据,没有 RewriteEngine

.htaccess afflict URL but not local data, without RewriteEngine

我有以下问题:

如果我在第 example.com/foo/bar 页打开我的网站,每个样式表都是这样加载的: 来源:

<link href="css/style.css" rel="stylesheet" type="text/css">

但是我的服务器像这样加载这个文件:foo/css/style.css


现在我想改变我的 .htaccess RewriteEngine 这不会发生, 但是 不想 使用RewriteRule 阻止 /css/ 改变 URL!

我的.htaccess

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php?urlparam= [NC,L] 

提前致谢;)

当您导航到 example.com/foo/bar 时,它被解释为目录 /foo 中的资源 bar。您的标记包括 css/style.css,并且由于它不包含前导 /,这意味着 css 文件夹是相对于当前路径(即 /foo)的。这就是您看到这种行为的原因。

您的重写规则与正在发生的事情无关。如果您导航到 example.com/foo/bar/(尾随 /),那么它将请求 example.com/foo/bar/css/style.css.

您在 css、js、图像文件中使用的是相对路径,而不是绝对路径。

您可以在页面 HTML 的 <head> 部分下方添加此内容:

<base href="/" />

这样每个 亲戚 URL 都是从那个基础 URL 解析的,而不是从当前页面的 URL.