我正在使用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>
答案 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/
)。