2012-12-21 79 views
-1

我試圖優化一個網站,像這樣/category.php?show=numberIDURL重寫不工作

一個網址我想是這樣的:/category/numberID/

例如,我想:http://example.com/category.php?show=8成爲http://example.com/category/8/

我有谷歌搜索和遇到這.htaccess

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^category/([^/]*)/$ /category.php?show=$1 [L] 

W在這段代碼中,帽子是錯誤的,請不要給我發送一些教程鏈接,因爲我看過他們很多,我只是想要你的建議。

+2

請選擇一個有用的標題。 「爲什麼這不起作用」不是一個。 – deceze

+0

我們不知道它有什麼問題,使用它時會發生什麼? –

+0

@RudiVisser apsolutly沒事,那就是問題。 :( – DocNet

回答

2

正如在評論中所討論的那樣,您的重寫規則似乎工作得很好,而且您的問題是頁面樣式不再有效。

這背後的問題是因爲,就您的瀏覽器而言,您現在在目錄/category/8/內。這意味着任何與樣式或圖像等相關的鏈接都將被解析爲/category/8/而不是您的網站根目錄。例如:

<img src="images/test.jpg" alt="Test" /> 
<script src="scripts/site.js" type="text/javascript"></script> 

將被解析爲:

<img src="/category/8/images/test.jpg" alt="Test" /> 
<script src="/category/8/scripts/site.js" type="text/javascript"></script> 

比他們應該在哪裏相反,在網站根目錄。解決這個問題的最簡單的方法是讓所有的資源鏈接的絕對的,像這樣(在前面加上一個/):

<img src="/images/test.jpg" alt="Test" /> 
<script src="/scripts/site.js" type="text/javascript"></script> 

另一種權宜之計(不太優選比上面)是使用一個<base .. />標籤,就像這樣:

<base href="http://example.com/" /> 

這會告訴你的瀏覽器的所有相關鏈接應該針對base得到解決。

+0

謝謝@RudiVisser這個工作。:) 已解決!!! – DocNet

+0

@DocNet沒問題,別忘了標記爲答案。 –