2011-11-25 108 views
0

如果我有一個GET搜索字段,我怎麼能提交到一個乾淨的網址(例如/search/keyword而不是index.php?fn=search&term=keyword)?如果可能的話,我不想用Javascript來覆蓋表單的提交事件。如何使用php獲取乾淨的網址

謝謝。

+2

謝謝,追!我總是忘記在代碼標籤中加入一小段代碼。 – penguinrob

回答

0

您必須使用javascript。您可以將PHP腳本重定向到「乾淨」網址,但即使如此,您仍然會首先訪問「醜陋」網址。

+0

這就是我所害怕的。 – penguinrob

+0

我結束了剛剛使用的JavaScript和編碼一個單獨的醜陋的網址,非JavaScript的形式可以提交。比我想象的要容易得多。 – penguinrob

-1

我強烈建議您使用類似CodeIgniterCakePHP的框架。他們都具有乾淨的網址能力等等。

+0

如果我已經開始使用這些框架之一,那很好,但是,我已經是這個項目的一個很好的部分,並且遇到了這個問題。 – penguinrob

+0

好吧,你從一開始就註定要失敗。祝你好運 – Herr

2

我從你的標籤(.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雖然!

+0

有許多方法可以讓它工作而不必以這種方式使用它。像上面使用mod_rewrite重寫URL一樣的任何修改只會降低已經吸引Apache的性能。 – gca

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。