2009-08-07 24 views
2

私はこのURLを持っている:私はそれをどのように行うことができます書き換えクエリ文字列

newsite.com/utenti/10

oldsite.com/profile.php?uid=10

私はそれを書き直したいですか?

UPDATE

RewriteCond %{QUERY_STRING} ^uid=([0-9]+)$ 
RewriteRule ^profile\.php$ http://www.newsite.com/utenti/$1 [R=301,L]

しかし、$ 1試合フルクエリ文字列だけでなく、ユーザーID:私はこれを書きました。

答えて

5

書き換え条件で一致を使用するには、$ 1の代わりに%1を使用する必要があります。また、残りのクエリ文字列を削除したい場合は、?を追加する必要があります。

 
RewriteCond %{QUERY_STRING} ^uid=([0-9]+)$ 
RewriteRule ^profile\.php$ http://www.newsite.com/utenti/%1? [R=301,L] 
2

$nのみRewriteRuleディレクティブの試合を参照してください。 %nを使用して対応するRewriteCondディレクティブのマッチングを参照してください。

また、置換に空のクエリを指定する必要があります。それ以外の場合は、元のクエリが使用されます。

そして、あなたはそのまま滞在するクエリの残りの部分を持っているしたい場合は、このルールを使用します。

RewriteCond %{QUERY_STRING} ^(([^&]*&)*)uid=([0-9]+)(.*) 
RewriteRule ^profile\.php$ http://new.example.com/utenti/%3?%1%4 [R=301,L] 
関連する問題