【发布时间】:2012-09-25 17:33:56
【问题描述】:
如何在 url 中隐藏参数(query_string)但将它们发送到隐藏的页面,在地址栏中不可见
示例:
我有这个:
http://localhost/index.php?sent=true
我想要:
http://localhost/index.php
但我想在 PHP $_GET['sent'] 中获取 sent 参数
我试图重定向到没有参数的页面(没有 query_string)[R],然后给页面一些参数(静默)没有 [R] 重定向(不改变地址本身)
我尝试在 htaccess 中使用不同标志和不同方式的 RewriteRule,但没有任何效果
我了解到,如果我想在浏览器中更改地址,我必须在一个 RewriteRule 行中使用 R 标志和 L 标志 - 其他方式不起作用 - 地址不会改变
但是当我使用 [L] 标志时,我无法转到下一行(下一个 RewriteRule)并在没有 [R] 重定向的情况下将任何 query_string 附加到地址
如果我没有在第一行放置 [L] 标志(带有 [R]),我没有新地址,但如果我这样做 - 我不能使用 [C] 标志甚至 [N] 标志
原因如下:
在从表单成功发送数据后,我在我的页面上使用 header('Location: ...?sent=true') 函数 我重定向到 ?sent=true 因为我不想用户刷新页面并再次发送相同的数据
但是在重定向到 ?sent=true 之后,我不想在地址栏中有那个 query_string 该页面上有更多表单将发送其他 POST 数据并使用这个丑陋的 query_string 刷新页面
怎么做?
【问题讨论】:
标签: php .htaccess mod-rewrite redirect hide