mod_rewrite和CSS

时间:2009-02-15 01:44:40

标签: css mod-rewrite

我正在使用mod_rewrite来更改网站上的所有网址。示例: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>

3 个答案:

答案 0 :(得分:6)

试试这个。

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

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

<base href="/" />

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