我是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是我的问题,任何修复
答案 0 :(得分:4)
尝试使用绝对URL(相对于Domain的root):
<link href="/path/to/css/style.css" rel="stylesheet" type="text/css" />
/path/to/css/style.css
与http://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/" />