2010-01-24 30 views
0

我目前在的形式在我的網站的鏈接: - http://example.com/products.php?cat=Xhtaccess重定向到相同的文件,但顯示不同的網址,而不必更改內部鏈接?

我想,一旦帶到鏈接的目標,該網址顯示是這樣的: - http://example.com/new

我的服務器上的文件是相同的文件,但只有網址應該顯示整潔,而不必更改任何鏈接。

我嘗試以下,但發現它只有當我明確地改變了內部鏈接有用: -

RewriteRule ^new$ products.php?cat=10

+0

您的意思是,當您將鼠標懸停在鏈接上時,它顯示的是products.php?cat = 10?如果是這樣的話,是的,你需要改變你的鏈接到/新 –

+0

我主要希望頁面的目的地不是products.php?cat = 10而是/ new,其中/ new的內容完全相同,沒有我必須創建一個新的文件。這也不錯,但不是必須的,當懸停在鏈接上時,它不顯示products.php?cat = 10。 – nitbuntu

回答

0
RewriteCond %{QUERY_STRING} =cat=10 
RewriteRule ^products.php$ new [R,L] 

RewriteRule ^new$ products.php?cat=10 [L] 
+0

我試過這個,但我仍然需要更改我的php文件中的鏈接地址才能帶我訪問http://example.com/new。我想要一個解決方案,我不需要更改內部鏈接。 – nitbuntu

+0

第一條規則在瀏覽器中將'products.php?cat = 10'重寫爲'new',第二條規則在httpd內部將'new'重寫爲'products.php?cat = 10'。 –

+0

事情是,即使在我的.htaccess中輸入這些內容後,當我點擊鏈接到products.php?cat = 10時,我不會被帶到/ new。 – nitbuntu

0

檢查原請求的URL在request line

RewriteCond %{THE_REQUEST} ^GET /products\.php\?([^&]*&+)*cat=X 
RewriteRule ^products\.php$ /new? [L,R=301] 

但是,如果你使用PHP來做這件事,它可能會更容易(請參閱$_SERVER['REQUEST_URI'])。

相關問題