【问题标题】:mod_rewrite and CSSmod_rewrite 和 CSS
【发布时间】:2010-10-07 16:48:16
【问题描述】:

我正在使用 mod_rewrite 更改站点上的所有 URL。示例:http://www.site.com/about/ 变为 http://www.site.com/?action=about(别担心,我有很好的友好的健全性检查)。问题是对于http://www.site.com/ 以外的任何东西,CSS 样式表都不会加载。我认为这是因为它在/about/content/style.css 而不是/content/style.css 中查找样式表。如何确保它找到正确的样式表?

这是我的一些代码以防万一。 .htaccess 看起来像这样:

RewriteEngine on
RewriteRule ^news/([0-9]+)/?$ /?action=news&start=$1 [L]
RewriteRule ^news/?$ /?action=news&start=0 [L]
RewriteRule ^(about|contact|man|home|download)/?$ /?action=$1 [L]

他们都重定向到index.php,开头是这样的:

<html>
  <head>
    ...
    <link rel="stylesheet" href="content/style.css" type="text/css" />
  </head>
  <body>
    ...
  </body>
</html>

【问题讨论】:

    标签: css mod-rewrite


    【解决方案1】:

    试试这个。

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

    【讨论】:

      【解决方案2】:

      为什么不对 CSS 文件使用绝对 URI?即/content/style.css。省去这样的头痛。

      【讨论】:

        【解决方案3】:

        另一种解决方案是使用BASE HTML 元素设置基本 URI:

        <base href="/" />
        

        因此,相对 URI 是从基本 URI 路径 / 而不是当前资源的 URI 路径(在您的情况下为 /about/)解析的。

        【讨论】:

          猜你喜欢
          • 2012-08-04
          • 1970-01-01
          • 2012-07-21
          • 2012-10-29
          • 2010-11-13
          • 2015-09-28
          • 2014-07-19
          • 2011-09-20
          • 1970-01-01
          相关资源
          最近更新 更多