如果我有一个GET搜索字段,我怎么能提交到一个干净的网址(例如/search/keyword
而不是index.php?fn=search&term=keyword
)?如果可能的话,我不想用Javascript来覆盖表单的提交事件。如何使用php获取干净的网址
谢谢。
如果我有一个GET搜索字段,我怎么能提交到一个干净的网址(例如/search/keyword
而不是index.php?fn=search&term=keyword
)?如果可能的话,我不想用Javascript来覆盖表单的提交事件。如何使用php获取干净的网址
谢谢。
您必须使用javascript。您可以将PHP脚本重定向到“干净”网址,但即使如此,您仍然会首先访问“丑陋”网址。
这就是我所害怕的。 – penguinrob
我结束了刚刚使用的JavaScript和编码一个单独的丑陋的网址,非JavaScript的形式可以提交。比我想象的要容易得多。 – penguinrob
我强烈建议您使用类似CodeIgniter或CakePHP的框架。他们都具有干净的网址能力等等。
如果我已经开始使用这些框架之一,那很好,但是,我已经是这个项目的一个很好的部分,并且遇到了这个问题。 – penguinrob
好吧,你从一开始就注定要失败。祝你好运 – Herr
我从你的标签(.htaccess)中假设你使用的是Apache,如果可以的话,你可以使用mod_rewrite引擎使你的查询字符串搜索引擎友好。
即使世界像this one
各地的网络一些非常好的资源,从本质上讲,你需要做的是
确保mod_rewrite的安装/在服务器上启用
接通国防部重写和配置规则
(根据很好的资源here),转换自
http://www.best-food-of-the-usa.com/index.php?operation=top&state=arizona& 城市=台面&上限= 10
到
http://www.best-food-of-the-usa.com/arizona/mesa/top10.html
您可以使用规则
RewriteRule ([a-zA-z]+)/([a-zA-z]+)/top10\.html$ index.php?operation=top&state=$1&city=$2&limit=10
很明显,你可以让这条规则无论是更简单,更通用的处理所有您的查询字符串,或者您可以为您想要重写的每个网址进行自定义。
记住并更新您的应用程序,以便它指向新的重新编写的URL虽然!
有许多方法可以让它工作而不必以这种方式使用它。像上面使用mod_rewrite重写URL一样的任何修改只会降低已经吸引Apache的性能。 – gca
您对您的index.php进行POST调用,然后重定向到一个很好的URL。
的index.php:
<?php
if (!empty($_POST["fn"])){
$search = $_POST["fn"];
$keyword = $_POST["term"];
header("Location: http://www.yourwebsite.com/$search/$keyword");
}else{
// Show your content
}
?>
当然,你必须使用mod_rewrite处理您不错的URL。
谢谢,追!我总是忘记在代码标签中加入一小段代码。 – penguinrob