2011-06-22 70 views
2

我是mod_rewrite的新手。mod_rewrite與CSS的包含問題

我有這個頁面profiles.php?頁= XXX

我試圖將它移到更友好的URL /汽車/ 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是我的問題任何修補程序

回答

1

我認爲這樣效果更好。

<base href="/" /> 

特別是因爲你可以定義你的網站的根部,然後沒有像在子目錄CSS或jQuery的資產迷路。

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

嘗試使用絕對URL(相對於域的根目錄):

<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

以這種方式,不依賴於你的URL斜線的數量。

+0

以及我使用$ base_addr所有包括甚至PHP,它的工作總是罰款只有HTML包括那不工作。 – Zalaboza

+0

require_once($ base_addr.'class/XX.php');工作正常,什麼不工作是HTML hrefs, – Zalaboza