0

私が抱えている問題は、リダイレクトを通じてクエリ文字列が持続することです。つまり、タイプの URL をリダイレクトしようとするたびに

RewriteRule ^oldsite/product/productname.aspx http://subdomain.newsite.com/product [L,R=301]

これは完全に機能します-問題ありません。

ただし、次のようなクエリ文字列を使用してこれを試すと、

RewriteRule ^oldsite/product/productname.aspx?=QUERYSTRING http://subdomain.newsite.com/product [L,R=301]

リダイレクトは機能しますが、ヘッダーチェッカーでチェックすると、次の結果になります。

http://subdomain.newsite.com/product?=QUERYSTRING

つまり、古い URL からのクエリ文字列を渡しますが、それはしたくありません。

たくさんのリソースをチェックしましたが、これに対する簡単な解決策が見つからないようです。四角いパラメーターのブラケット内に欠落しているフラグはありますか? (mod_rewrite の初心者で、間違った用語を使用していたらごめんなさい。)

4

2 に答える 2

1

? を追加した場合 ターゲット URL に送信すると、クエリ文字列がリダイレクトから削除されます。

RewriteRule ^oldsite/product/productname.aspx http://subdomain.newsite.com/product? [L,R=301]
于 2012-06-11T11:08:33.540 に答える
0

はい、クエリ文字列は、変更を加えていない限り、リダイレクト時にも自動的に新しいURLにコピーされます(たとえば、新しいURLにクエリ文字列がない場合)。

次に例を示します /register。-> -元のURLが;であっても/login.php?action=register、結果は常になります。ただし、->の場合、クエリ文字列は常にコピーされるため、になります。/login.php?action=register/register?say=bla-bla/register/login.php/register?say=bla-bla/login.php?say=bla-bla

では、何をする必要がありますか?クエリ文字列を指定する必要があります。この場合、クエリ文字列は空である必要があります。

どうやってするか??新しいURLの最後に追加するだけです。

RewriteRule ^oldsite/product/productname.aspx http://subdomain.newsite.com/product? [L,R=301]
于 2012-06-11T11:13:45.193 に答える