我想清除我的网址。
当人们访问我的网站时,他们通常会遇到这样的事情:
www.site.com/webpage/?var1=1&var2=2&var3=3
是否有可能获取所有这些GET变量,将它们作为POST发送,重新加载页面,并抓取所有新发送的POST变量来清理URL?
所以对于访问该页面的用户来说,它最终看起来像www.site.com/webpage /
答案 0 :(得分:3)
将GET
参数保存到会话变量中,并重定向回不带任何参数的URL。在没有参数的情况下调用时,从会话中获取参数。
session_start();
if (empty($_GET) && isset($_SESSION['_GET'])) {
// This is the page after the redirect, copy the session variable back into $_GET
$_GET = $_SESSION['_GET'];
} elseif (!empty($_GET)) {
// When called with parameters, copy $_GET into a session variable
$_SESSION['_GET'] = $_GET
// and then redirect to the page with no parameters
header("Location: /webpage/");
exit();
}
unset($_SESSION['_GET']); // So it's only used once
// Use $_GET in the rest of the script as normal
答案 1 :(得分:0)
不,你不能让浏览器发送带有任何重定向代码的帖子请求 - 这是必需的。
第二件事:发送POST请求将禁用缓存,并且不断地使用浏览器后退按钮的人员惹恼“你想再发送那些数据”的问题。
最好的办法是避免将您不喜欢的内容放入网址(即网址设计)中,但除了您不喜欢之外,此网址与其他内容一样好坏。