2015-02-08 124 views
1

我傳遞的參數,從一個網頁到另一個網頁在PHP這裏是代碼: -如何使用.htaccess更改查詢字符串參數的名稱?

<a href="index.php?product.php&category_id=<? echo $Getrow['id'];?>" target="_blank">Detail</a> 

現在,當我在細節上的鏈接點擊它顯示產品的頁面,但在本頁面CATEGORY_ID是例CATEGORY_ID = 15因此我不想顯示它,而不是這個id我想顯示類別名稱使用.htaccess 請幫我

我想要它的答案,因爲當我們傳遞查詢字符串像example.com/index.php?category_id= 15 & product_id = 13此時某人可以將其更改爲example.com/index.php?category_id=156546565464654 & produc t_id = 13546545484我不想要這個東西。

+1

這不是htaccess的工作原理。 – 2015-02-08 09:38:28

+0

@LorenzMeyer的意思是? – sunena 2015-02-08 09:41:10

+1

意思是說,除非你在你的htaccess文件中硬編碼你所有的類別名稱,否則這是行不通的。通過PHP更好地處理這個問題。 – GolezTrol 2015-02-08 09:42:27

回答

0

我做了類似的事情。 當我創建一個鏈接,我創建鏈接在使用變量文本,如<a href="category-15">click me</a>

然後在.taccess我這樣做

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)-([0-9]+)$ search.php?id=$2 

,然後鏈接http://example.com/category-15帶我到http://example.com/search?id=15

我想,你可以根據你的需要更改htaccess中的變量,你只需要使用$ 1,$ 2,$ 3等替換。 我希望這可以幫助。

編輯:我編輯了示例網址,爲了一致性。

+0

你爲什麼寫這裏id = $ 2這裏$ 2的意思? – sunena 2015-02-08 10:05:42

+0

([a-zA-Z0-9 _-] +)是第一個用於更改文本的正則表達式(如果需要,請使用通配符),([0-9] +)是第二個正則表達式。我在文本鏈接中傳遞一個數字,所以我需要知道這個數字。如果我使用http://example.com/category?id=15&product=34,那麼類別將是$ 1和產品$ 2,但通配符必須以相同的方式進行分區,因此您可能會執行類似'([ ([0-9] +) - ([a-zA-Z0-9 _-] +) - ([0-9] +)''類別-15-產品34'。 ^是字符串的開頭,$是字符串的結尾,與$ 1無關。 – Hunnenkoenig 2015-02-08 10:12:12

+0

@ Hunnenkoenig選項+ FollowSymLinks RewriteEngine On RewriteRule ^([a-zA-Z0-9_- ] +) - ([0-9] +)$ index.php?action = product_details&pid = $ 1什麼也沒有發生......... :-( – sunena 2015-02-08 10:37:00

相關問題