因此,我已经使用mod_rewrite将我的get查询网址从/ news?news_id = 6重写为/ news / 6。但是现在,我希望当有人使用get方法提交表单时也能做到这一点。现在,当您提交表单时,它仍将您定向到/ news / news_id = 6而不是/ news / 6,我将如何清理get查询URL?我很确定使用mod_rewrite无法完成此操作(如果可以,请更正),因此我想您需要使用Javascript或PHP。我一直在尝试使用PHP进行此操作,到目前为止,我已经完成了以下操作:
if (!empty($_GET['news_id'])) {
$redirecturl = "/news/" . $_GET['news_id'];
$redirecturl = str_replace(" ", "-", $redirecturl);
header('Location: ' . $redirecturl, true, 303);
die();
}
但是,这会导致浏览器出现错误,提示“本地主机重定向您太多次”。我将如何使用PHP完成此任务?
谢谢。
答案 0 :(得分:0)
不确定,但是必须是“获取”表格吗?如果您想要一个干净的URL,这将是post方法的一个非常简单的示例(无需任何安全检查!)。如果在同一页面上,可以将“操作”留空:
表单代码:
<form action="" method="post">
[Other form code ]
<input type="hidden" name="news_id" value="6" />
</form>
处理代码:
if ($_POST && !empty($_POST['news_id'])) {
// Do what you want with: $_POST['news_id'];
}
此外,您可以在处理表单处理的地方创建一个新的mod_rewrite,例如:/ news6 / process。出于安全原因,这样做会更好,并且您的代码会更简洁。完成处理后,在'/ news / 6'上设置一个会话变量以使用户知道处理是否完成。