2012-09-11 87 views
0
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?$1=1 [L] 
RewriteRule ^([a-zA-Z0-9]+)$ index.php?$1=1 [L] 

#if category 
RewriteRule ^category/([a-zA-Z0-9]+)/$ index.php?results=true&lid=$1 [L,NC] 
RewriteRule ^category/([a-zA-Z0-9]+)$ index.php?results=true&lid=$1 [L,NC] 

第一部分工作得很好,當我在url中添加類別時,它在其他參數前面寫入類別,因此css和圖像正在消失。htaccess中的多個RewriteRule

mywebsite.com/category/380應該重定向到mywebsite.com/index.php?results=true &蓋子= 380這樣做,但原來的網址有pics和css,但乾淨的網址沒有。

回答

0

這是因爲相對基準URI已經改變,您的css和圖像可能是相對鏈接(例如<img src="image_folder/image.png">)而非絕對(例如<img src="/image_folder/image.png">)。

原始基數爲/,這是index.php坐的位置。但一旦你有/category/something,基地變成了/category/。所以,你可以更改所有的鏈接相對於絕對的(通過添加斜線),也可以在所有頁面的頁眉補充一點:

<base href="/"> 

如果鏈接到CSS和圖像已經在URI前面生成了一個/category/,那麼這聽起來像是與你的框架相關的東西。但是,如果沒有解決這個問題,你可以添加這些規則,你已經有:

# if the request ends with one of these extensions 
RewriteCond %{REQUEST_URI} \.(css|png|gif|jpe?g|bmp|ico|js)$ [NC] 
RewriteRule ^category/(.*)$ /$1 [L] 
+0

只適用於首頁,當我輸入/ category/something,頭文件在源代碼中仍然是一樣的,它顯示了基本標籤,但是在真正的URL之前,所有內部url的都有/類別 –

+0

@ Mr.Crowley您是如何生成這些頁面的?他們正在用**'/ category /'生成**嗎? - 我編輯了我的答案 –

+0

這些頁面正在從mysql的循環中生成。並且沒有它們在生成時沒有類別前綴,而是在具有乾淨網址的頁面加載後,所有鏈接都具有類別。它看起來像rewriteRule重複它自我...我不知道,我卡住 –