【问题标题】:mod_rewrite images in .css stylesheet require absolute path now?.css 样式表中的 mod_rewrite 图像现在需要绝对路径吗?
【发布时间】:2014-05-29 23:11:29
【问题描述】:

我有以下 mod_rewrite 代码:

Options +FollowSymLinks
RewriteEngine On

#SecFilterInheritance Off
ErrorDocument 404 /fourohfour.php

RewriteCond %{HTTP_HOST} ^(myurl\.com)$ [NC]   **changed the domain name for this posting **
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

RewriteRule ^articles/([^/]+)/([^/]+)/?$ /article.php?id=$1&articleTopic=$2 [QSA,L]

问题是当我访问 artcle.php Web URL 时,我的 CSS 文档中引用的图像不再加载。这可能是因为他们现在需要 myurl.com 绝对路径,因为我正在使用 mod rewrite

例如:

    background: #D4D9DD url('images/bg03.jpg');

需要改成:

    background: #D4D9DD url('http://www.myurl.com/images/bg03.jpg');

但是我在很多 CSS 文件中有很多图片。

有没有一种方法可以修改 .htaccess,以便保留 CSS 中的相关路径,并且我不必手动更改我的 CSS 文件中的每个图像引用?

【问题讨论】:

    标签: php css .htaccess mod-rewrite


    【解决方案1】:

    在你不需要的时候给服务器重写图像请求的不必要的工作可能不是最好的主意。

    大概浏览器正在请求这样的图像:

    http://www.myurl.com/article/IDNum/ArticleTitle/bg03.jpg
    

    所以你仍然可以使用他们只需要考虑假目录的相对路径:

    background: #D4D9DD url('../../images/bg03.jpg');
    

    只需运行大量搜索并替换,将 'images/ 替换为 '../../images/

    同样的逻辑也适用于 mod_rewrite 规则,但是,为什么要使用不需要的处理器周期?希望有一天您的网站流量会很高,并且您会感谢自己保持高效。

    或者: http://www.w3schools.com/tags/tag_base.asp

    旁注:搜索引擎真的不再关心搜索引擎友好的 URL。多年没有了。

    【讨论】:

    • skel.min.js 由于 mod_rewrite 没有找到 css 文件...firebug 说:myurl.com/articles/1/css/style.css 404 (Not Found) .. 问题是这个链接是由 skel.min 生成的.js,不是我的代码,而是我正在使用的这个 .js 库......没有 mod_rewrite skel.min.js 并且所有 CSS 工作正常...... mod_rewrite 搞砸了。有什么想法吗?
    • 和图片的情况一样,尝试用完整的URL而不是相对的URL加载skel.min.js,然后它应该在正确的地方寻找style.css。
    猜你喜欢
    • 1970-01-01
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 2014-03-23
    • 1970-01-01
    • 2015-03-04
    • 2014-01-07
    • 1970-01-01
    相关资源
    最近更新 更多