2011-12-24 5 views
1

OK、私はこれをしばらく考えようとしています。私は最近、Apacheのmod_rewriteルールの使い方を理解しました。私は自分のウェブサイトに設定された検索スクリプトを持っており、GETを使用しています。私はGETメソッドを持つhtmlフォームを持っています。問題は、私のURLが次のように出てくるフォームを提出するときです:http://localhost/search/name/userHTMLフォームとmod_rewrite

2番目のようなURLを作る方法はありますか?私はPHPを使用しています。

RewriteEngine on 
RewriteRule ^member/?([^/\.]+)?/?$ member.php?page=$1 [L] 
RewriteRule ^games/?([^/\.]+)?/([^/\.]+)?/?$ games.php?page=$1&p=$2 [L] 
RewriteRule ^search/?([^/\.]+)?/([^/\.]+)?/?$ search.php?search=$1&term=$2 [L] 
RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L] 

おかげで、 Legobear154

答えて

2

これは、mod_rewriteのとは何の関係もありません:

は、ここでも私のhtaccessファイルです。 JavaScriptを使用する必要があります。

フォーム用イベントハンドラonsubmitを作成します。そしてjavascript関数では、フォームデータに従ってフォームURLを変更します。

+0

したがって、mod_rewriteを実行してクエリ文字列を変更することはできません。私はApacheのドキュメントを読んで、これを見つけました:クエリ文字列の変更 デフォルトでは、クエリ文字列は変更されずに渡されます。ただし、クエリ文字列部分を含む置換文字列にURLを作成することはできます。置換文字列内の疑問符を使用して、次のテキストをクエリ文字列に再挿入する必要があることを示します。既存のクエリ文字列を消去する場合は、置換文字列を疑問符だけで終了します。新しいクエリ文字列と古いクエリ文字列を組み合わせるには、[QSA]フラグを使用します。 – legobear154

+0

要求が行われた後にMod_reqriteが動作し始めます。クライアント側でURLを変更することはできません。あなたはURLを作成していないので、リクエストはしないでください。 –

+0

ok、javascriptでフォームのURLを変更するにはどうすればよいですか?私はいくつかのjavascriptを知っていますが、多くはありません。 – legobear154

0

次のことを試してください: -

Options +FollowSymlinks 
RewriteEngine on 
RewriteRule ^member/([^/]+)/ member.php?page=$1 [NC] 
RewriteRule ^games/([^/]+)/([^/]+)/ games.php?page=$1&p=$2 [NC] 
RewriteRule ^search/([^/]+)/([^/]+)/ /search.php?search=$1&term=$2 [NC] 
RewriteRule ^([^/]+)/ index.php?page=$1 [NC] 

はそれがお役に立てば幸いです。