如何使用PHP获取一个干净的URL

时间:2011-11-25 22:56:36

标签: php forms .htaccess get clean-urls

如果我有一个GET搜索字段,我怎么能将其提交到一个干净的网址(例如/search/keyword而不是index.php?fn=search&term=keyword)?如果可能的话,我不想使用Javascript来覆盖表单的提交事件。

感谢。

4 个答案:

答案 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)

我强烈建议您使用CodeIgniterCakePHP等框架。它们都具有干净的网址能力等等。