如果我有一個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