2017-04-25 29 views
0

私はここでこの問題を扱ういくつかの異なる質問をしてきましたが、私はそれが必要な方法を完全には働かせていませんでした。.htaccess部分的なクエリ文字列の書き換え

例えば、このURLを取る:

http://example.com/not-right-contact?portal=9648&... 

電子メールは、このポータルIDで送り出されたが、それは間違っていましたました。したがって、URLを置き換えてURLを適切にリダイレクトする必要があります。ポータルクエリ文字列の後ろには、このページのフォームを事前入力するいくつかのフィールドがあります。私たちはそれらを元通りに保つ必要があります。

RewriteCond %{QUERY_STRING} (^|&)?portal=9648 
RewriteRule ^(.*)$ /not-right-contact?portal=9654%1%2 [L,NE] 

これは何もしていません。ここで

は、私はいくつかのソースから一緒に石畳てきたものです。ある時点では、最後にportal = 9654というURLに書き換えられましたが、追加の変数は追加されませんでした。ヘルプは非常に感謝しています。

参照としてManipulating the Query Stringを使用してUPDATE

は、私はに私の書き換えを変更した以下:

RewriteCond %{QUERY_STRING} ^(.*)portal=9648(.*)$ 
RewriteRule (.*) /not-right-contact?%1portal=9654%2 [L] 

フォームに追加クエリ文字列データを入れているの書き換えが、値のポータルクエリ文字列はまだ変化していません。ルールの最初の値を(。*)または。?以外のものに変更するたびに、HTTP 500エラーが発生します。

答えて

2

[L、QSA]を使用すると、リダイレクトURLの末尾にクエリ文字列を保存して追加することができます。

+0

残念ながら、 QSAを追加すると、HTTP 500エラーが発生します。 –

関連する問題