如果我有一个GET搜索字段,我怎么能将其提交到一个干净的网址(例如/search/keyword
而不是index.php?fn=search&term=keyword
)?如果可能的话,我不想使用Javascript来覆盖表单的提交事件。
感谢。
答案 0 :(得分:2)
我假设你的标签(.htaccess)你正在使用apache,如果是这样你可以利用mod_rewrite引擎使你的查询字符串SEO友好。
网上有一些非常好的资源,如this one
基本上你需要做的是
确保在服务器上安装/启用mod_rewrite
启用mod重写并配置规则
(根据资源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自定义它。
记住并更新您的应用,以便它指向新的重写网址!
答案 1 :(得分:0)
您必须使用javascript。您可以重定向PHP脚本以转到“干净”网址,但即便如此,您仍将首先转到“丑陋”网址。
答案 2 :(得分:0)
您对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。
答案 3 :(得分:-1)
我强烈建议您使用CodeIgniter或CakePHP等框架。它们都具有干净的网址能力等等。