Apache RewriteRule之后如何解决CSS包含错误?

时间:2012-01-17 10:32:49

标签: css apache rewrite localhost

我使用winXP和AppServ。我的网站root上有一个“showitem.php”。示例用法:     www.mydomain.com/showitem.php?id=123
我想使用以下链接:
    www.mydomain.com/item/123
在.htaccess中我写了这句话:
    RewriteRule ^item/([^/]+)$ showitem.php?id=$1

服务器指向showitem.php并成功接收id。但是,主要问题是css和js文件。如果我将“css / style.css”设置为“/css/style.css”,则页面显示在Internet上,但不显示在localhost上,因为root是“localhost”但文件位于“localhost / mydomain”下。我也为.css文件尝试了“!-f”条件,但它没有帮助,据我所知,它不能。要解决这个问题,我应该将错误的css文件解释指向正确的位置,所以我想将客户端请求“item / css / style.css”重定向到其原始位置“css / style.css”。我为localhost添加了以下规则,但还有其他方法吗?

RewriteRule ^item/css/([^/]+)$ /mydomain/css/$1
RewriteRule ^item/img/([^/]+)$ /mydomain/img/$1

2 个答案:

答案 0 :(得分:1)

在html头中设置基本标记。

<base href="http://www.mydomain.com/" />

然后设置样式表链接相对于基础的路径,例如

<link href="css/style.css" />

答案 1 :(得分:0)

您可以将这些内容写入文件.htaccess

ErrorDocument 404 /error_404.php

/error_404.php是您要在其中放置内容的错误文件。