PHP剥离查询字符串,这样它就不会返回给用户


PHP strip query string so it doesn't return it to the user

我在一台服务器上有一个. net MVC应用程序,我从另一台服务器上运行的PHP页面发布了一个表单。然后,应用程序重定向回原来的PHP脚本页面。

然后将该站点返回给客户机。很简单。

然而,在重定向(ASP。. NET端),我发送一个查询字符串来检查php代码,在浏览器中显示查询字符串。

我如何首先获得查询字符串值(只有一个),然后删除它,所以当页面返回到浏览器时,它不显示查询字符串,因为它包含了我不希望用户看到的信息

我试过了

<?php unset($_GET['token']); ?>

没有成功。我也试过用

重定向
header('Location: ... ') 

,但这只是重定向,新的PHP文件没有初始查询字符串来执行该操作。

我也读过关于重定向到一个表单与隐藏值和自动提交通过javascript,如果有必要,我可以使用它,但它似乎是错误的回到客户端发送我回到完全相同的php脚本只是从url剥离查询字符串。

由于CORS,我不能使用ajax post到asp.net页面,所以我也不能这样做。

是我想要实现的,而不是javascript方法可能吗?

您可以使用。htaccess从URL中删除所有或特定的GET参数

删除查询字符串

完全删除查询字符串。

RewriteRule ^/page /page?

删除单个键/值

从查询字符串中删除单个键/值对。这个例子通过匹配任何值来扩展上面的例子,并删除多个连续的'&'字符。

RewriteCond %{QUERY_STRING}  (.*)(?:^|&)unWantedKey=(?:[^&]*)((?:&|$).*)
RewriteCond %1%2 (^|&)([^&].*|$)
RewriteRule ^(/path)$ $1?%2

在你的例子中unWantedKey = token

参考:http://wiki.apache.org/httpd/RewriteQueryString