2012-01-27 10 views
0

私はURLに位置変数を返すgetフォームを持っています。私のサイト全体のURLの書き換えは私のgetフォームから離れて動作しています。 findus /場所/ locationvalueGETフォームのmod_rewrite

/

が、それは現在に行く:私はフォームを送信するたびに、私はそれがに行きたい?

find_us場所= locationvalue

私の現在の.htaccessファイルです:

RewriteEngine On # Turn on the rewriting engine 

RewriteRule ^([^/.]+)/?$ $1.php [L] # rewrite without query string parameters 
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/?$ $1.php?$2=$3 [L] # one parameter 
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/([^/.]+)/?$ $1.php?$2=$3&$4=$5 [L] # two parameters 
+0

フォームを送信するURLを記載してください。リダイレクトを内部(ユーザーには表示されません)または外部(ユーザーのブラウザは新しいURLにリダイレクトされます)にしますか? –

+0

find_usページが自身に送信され、外部リダイレクトする必要があります –

答えて

0

Philがコメントしたように、これは実際には書き直しの問題ではなく、フォームを生成しているスクリプトのうちの1つです。これは、次のようなHTMLを出力します。

<form id="some_form_name" method="post" action="some_action"> 

ここで、「some_action」は実行されるURIです。生成スクリプトが$_SERVER["REQUEST_URI"](PHPと仮定します)を使用する場合、外部フォームではなく内部URIフォームが生成され、これが起こります。これを修正するには、外部URI形式を使用するアクションを生成するようにフォームコードを変更する必要があります。

+0

これはPHPを使用します。 $ _ SERVER ["REQUEST_URI"]を使用していましたが、 "http://"。$ _ SERVER ["SERVER_NAME"]を使用しています。 –

+0

フィル、自分自身をよく説明しなかった。問題を引き起こしているのは '$ _SERVER [" REQUEST_URI "]'です。 httpを追加することは役に立ちません。 $ locationが$ _GET ['location']の有効なバージョンであると仮定して、これを ''/findus/location/$ location ''のように置き換える必要があります。 – TerryE

関連する問題