2015-02-08 121 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

相关问题