在url中隐藏参数(查询字符串)(htaccess)

时间:2014-09-03 10:29:45

标签: php .htaccess mod-rewrite laravel-4

如何在URL中隐藏参数(query_string),但将它们发送到页面隐藏,在地址栏中不可见 例如:

我有这个:

   http://localhost/project/company/redeem/category/Shirts/18?category_id=18

我想:

   http://localhost/project/company/redeem/category/Shirts.html

但我希望在PHP $_GET['sent']

中获取发送参数

我尝试重定向到没有参数的页面(没有query_string)[R],之后给页面一些参数(静默)没有[R]重定向(不改变地址本身)

我尝试在.htaccess中使用RewriteRule,使用不同的标志和不同的方式,但没有任何工作

请建议。

1 个答案:

答案 0 :(得分:0)

据我所知,您只能使用RewriteEngine隐藏参数键(在本例中为' category_id'):

RewriteEngine On

然后使用像这样的RewriteRule

RewriteRule ^project/company/redeem/category/Shirts/18/(regex of whatever you expect for your parameter)$ project/company/redeem/category/Shirts/18.php?category_id=$1

不确定前18是巧合还是始终与category_id值相同。如果是,你也可以使用

RewriteRule ^project/company/redeem/category/Shirts/(regex of whatever you expect for your parameter)$ project/company/redeem/category/Shirts.php?category_id=$1

如果要使用$ _GET,必须将参数写入url 某处。您只能尝试隐藏它。

例如,如果您通过名称了解每个类别,则可以将这些类别放入网址而不是数字。让我们说category_id 18是" V领男女皆宜的衬衫"你可以使用像

这样的网址
http://localhost/project/company/redeem/category/Shirts/V-Uni

并告诉您的脚本使用类别" V-Uni"而不是" 18"。
htaccess的:

RewriteRule ^project/company/redeem/category/Shirts/([a-zA-Z-]*)$ project/company/redeem/category/Shirts.php?category=$1