2012-12-18 94 views
0

我一直在頭撞牆,我知道我更接近,但我不知道如何使這個.htaccess的作品。我的.htaccess看起來不錯,但它不起作用

我有此鏈接:

http://rebateninja.com?page=reviews&id=B005KMDV9A&review=Shark-Navigator-Professional-Lift-Away-Vacuum-Clea 

我想這樣稱呼它:

http://rebateninja.com/reviews/B005KMDV9A/Shark-Navigator-Professional-Lift-Away-Vacuum-Clea 

我htacess是這樣:

RewriteEngine On 
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)$ index.php?page=$1&id=$2&review=$3 [L] 

但頁面全404錯誤試圖指向不存在的資源,像這樣的:的

http://rebateninja.com/reviews/B005KMDV9A/css/960.css 

代替

http://rebateninja.com/css/960.css 

我做錯了嗎?

+0

縮進4個空格或突出顯示代碼塊,然後單擊'{}'按鈕將代碼格式化。鏈接將不會被轉換爲真正的超鏈接。 –

+0

你如何鏈接到你的css文件? ''../ css/960.css'','http:// rebateninja.com/css/960.css''或'/ css/960.css''? – qooplmao

+0

一般來說,確保真實資源不被重寫的方法是在RewriteRule之前放置的RewriteCond%{REQUEST_FILENAME}!-f'和'RewriteCond%{REQUEST_FILENAME}!-d' –

回答

0

是的,這是真的,你.htaccess是正確的...

可能是,更改[L][NC] 和你OCDE是這樣的:

RewriteEngine On 
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)$ index.php?page=$1&id=$2&review=$3 [NC] 

希望幫助它

0

看着您的實際網站鏈接到您的css文件是css/960.css,因此它們正在當前文件夾中查找,因此http://rebateninja.com/reviews/B005KMDV9A/而不是根目錄。

入住這個帖子出來 - https://stackoverflow.com/a/3900018/1791606

0

假設你想:

http://rebateninja.com?key1=val1&key2=val2&key3=val3被改寫爲:

http://rebateninja.com/val1/val2/val3

一種方式來做到這一點是:

RewriteEngine On 
RewriteBase/
RewriteCond %{QUERY_STRING} [\w]+=(.*)&[\w]+=(.*)&[\w]+=(.*) 
RewriteRule .* /%1/%2/%3? [R=301,L] 

我也是假設有重定向,所以我添加了它。單獨[L]標誌不會重定向。

0

你的鏈接是相對的,而不是絕對的。這意味着瀏覽器嘗試猜測基礎URI是當URL瀏覽器訪問的樣子:

http://rebateninja.com/reviews/B005KMDV9A/Shark-Navigator-Professional-Lift-Away-Vacuum-Clea 

這意味着在任何內容相對URL將連有底座/reviews/B005KMDV9A/,所以如果相對鏈接看起來像:

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

由此產生的請求爲http://rebateninja.com/reviews/B005KMDV9A/css/960.css。您需要使用絕對鏈接或添加:

<base href="/"> 

在頁面的標題中。

相關問題