【问题标题】:.htaccess afflict URL but not local data, without RewriteEngine.htaccess 影响 URL 但不是本地数据,没有 RewriteEngine
【发布时间】:2016-01-21 00:29:35
【问题描述】:

我有以下问题:

如果我在页面 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=$1 [NC,L] 

提前致谢 ;)

【问题讨论】:

    标签: html apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:

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

    您可以在页面 HTML 的 &lt;head&gt; 部分下方添加此内容:

    <base href="/" />
    

    这样每个相对 URL 都是从该基本 URL 而非当前页面的 URL 解析的。

    【讨论】:

    • 谢谢,这真的很有帮助
    【解决方案2】:

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

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

    【讨论】:

    • 是否有可能停止脚本的这种行为?
    • 您可以使用 CSS 文件的绝对路径而不是相对路径。
    • 这对我来说是不可能的。
    猜你喜欢
    • 1970-01-01
    • 2022-06-11
    • 2016-06-03
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 2017-06-30
    相关资源
    最近更新 更多