mod_rewrite包含css的问题

时间:2011-06-22 18:48:48

标签: php css mod-rewrite base

我是mod_rewrite的新手。

我有这个页面 profiles.php?page = XXX

我试图将它移动到更友好的url / cars / XXX /

RewriteEngine on
RewriteRule ^cars/([^/]+)/?$ profiles.php?page=$1 [L]

问题是我包含样式

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

它不起作用,

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

工作正常,但不能使用profile.php?carname = XXX

为什么会这样?我该怎么办?

注意:

我有一个小脚本,通过计算/

的数量来确定网站的基地址
global $base_addr;
$s=substr_count($_SERVER['SCRIPT_NAME'],"/",2)-1;
$base_addr=".";
if($s > 0)$base_addr.=str_repeat("/..",$s);
require_once($base_addr.'class/xxx.php');
echo "<link href='$Base_addr/css/style.css' rel='stylesheet' type='text/css' />";

在此代码中,require_once将完美运行,只有html hrefs是我的问题,任何修复

2 个答案:

答案 0 :(得分:4)

尝试使用绝对URL(相对于Domain的root):

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

/path/to/css/style.csshttp://www.domain.com/path/to/css/style.css

相同

这样,它不依赖于您的网址中的斜杠数量。

答案 1 :(得分:1)

我认为这样做效果更好。

<base href="/" />  

特别是因为您可以定义站点的基本根,所以子目录中的css或jquery等资源都不会丢失。

<base href="www.url.org/" /> 
<base href="www.url.org/directory/" />