GET検索フィールドがある場合、どうすればそれをクリーンURLに送信できますか(たとえば/search/keyword
、の代わりにindex.php?fn=search&term=keyword
)?可能であれば、フォームの送信イベントを上書きするためにJavascriptを使用したくありません。
ありがとう。
GET検索フィールドがある場合、どうすればそれをクリーンURLに送信できますか(たとえば/search/keyword
、の代わりにindex.php?fn=search&term=keyword
)?可能であれば、フォームの送信イベントを上書きするためにJavascriptを使用したくありません。
ありがとう。
タグ(.htaccess)から、apacheを使用していると思います。そうであれば、mod_rewriteエンジンを使用して、クエリ文字列をSEO対応にすることができます。
このようなウェブの周りにいくつかの非常に素晴らしいリソースがあります
基本的にあなたがする必要があるのは
mod_rewriteがサーバーにインストール/有効化されていることを確認します
mod rewriteをオンにして、ルールを構成します
(ここの素晴らしいリソースによると)、から変換するには
http://www.best-food-of-the-usa.com/index.php?operation=top&state=arizona& city = mesa&limit = 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に合わせてカスタマイズすることもできます。
ただし、アプリが新しい書き換えURLを指すように、アプリを覚えて更新してください。
javascriptを使用する必要があります。PHPスクリプトをリダイレクトして「クリーン」URLに移動することもできますが、それでも最初に「醜い」URLに移動します。
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
}
?>
もちろん、素敵なURLを処理するにはmod_rewriteを使用する必要があります。
CodeIgniterやCakePHPなどのフレームワークを使用することを強くお勧めします。どちらもクリーンURL機能などを備えています。