2017-02-01 7 views
0

私のサイトにはsc_purchase_a.aspで終わる古いリンクがありますか?discode = foo & ProID = bar。 /courses/shop/4u.php?discode=fooにリダイレクトしたいと思います。これは私がこれまで行ってきたことですが、うまくいきません。クエリ文字列を含むasp URLをphp urlにリダイレクトするには

RewriteRule ^sc_purchase_a.asp?discode=(\w+)&ProdID=(\w+)/?$ /courses/shop/4u.php?discode=$1 [QSA] 

これは機能しないようです。

スターケンの答えに基づいて、私はこれを思いついたが、それは動作していない、今私に500エラーを与える。

RewriteCond %{THE_REQUEST} /sc_purchase_a\.asp\?discode=([^&]+)&ProID=.+ [NC] 
RewriteRule^/courses/shop/4u.php?discode=%1 [L,R] 
+1

てみ使用する必要があります。/page.php?code=$1 [L] –

答えて

2

QueryStringはRewriteRulesパターンの一致の一部ではありません。クエリ文字列をmanupulateするには、するRewriteCond

RewriteEngine on 


RewriteCond %{THE_REQUEST} /page\.asp\?code=([^&]+)&id=.+ [NC] 
RewriteRule^/page.php?code=%1 [L,R] 
+0

盲ことは申し訳ありませんが、しかし、あなたは '{}' THE_REQUESTによって何を意味していますか? – smulholland2

+1

THE_REQUESTは、クライアントがサーバーに送る完全な要求行を表す事前定義済みの変数です(例:** GET /page.asp?code=foo&id=bar HTTP 1.1 ** – starkeen

+0

)これにより、500エラーが表示されます。 – smulholland2

関連する問題