2009-06-29 18 views
0

mod_rewriteを初めて使用しています。 URLを別のURLに転送しようとしていますが、動作させることができません。 idは= 2-0-0-0 & sidは= cansas /にcansas-良いため、あなたです /cansas.php?m=2 &としましょう:動的パラメータを使用するhtaccess mod_rewrite

は、私はこのURLを転送したいと言いますヘッダーは301で応答するか、[R]でURLを更新するだけです。

私は私の.htaccessでこれを持っている:?

オプション+ FollowSymLinksを

RewriteEngine

のRewriteRuleに^ cansas.phpメートル= 2 & ID = 2-0-0-0 & SID = cansas $ cansas-is-good-for-you [NC、R = 301]

私はちょうど簡単な転送を行うことができたと思ったが、途中で途中で止まった。もし私が?m = 2 & id = etcを切り取った場合、cansas部分だけを新しい部分に転送するので、cansas-is-good-for-you?m = 2 & id = 2-0- 0-0 & sid = cansas。

URL文字列に複数の動的パラメータがある場合、どのように転送することができますか?私は転送する必要がページ上の例:

/cansas.php?m=2 & ID = 2-0-0-0 & SID = cansas

/cansas.php?m=2 & ID = 2 -1-0-0 & SID = cansas

/cansas.php?m=2 & ID = 2-2-0-0 & SID = cansas

任意の助けいただければ幸い:)

Mこのようにすることはできませんか?私が現時点で設定したやり方は、/ cansas-is-good-for-youという新しいURLをソース/cansas.php?m=2から読み込むことです。& id = 2-0-0 -0 & sid = cansasですが、ブラウザに表示されるURLは/ cansas-is-good-for-youです。私はその古いcansas.phpを転送する必要がありますか?あなたはRewriteRuleディレクティブは唯一のURLパスを扱うようRewriteCondディレクティブでURLのクエリをチェックする必要が

答えて

1

新しいURL :)にURL:

RewriteCond %{QUERY_STRING} ^m=2&id=2-0-0-0&sid=cansas$ 
RewriteRule ^cansas\.php$ /cansas-is-good-for-you? [L,R=301] 

あなただけつのパラメータをチェックしたい場合、これを使用する:

RewriteCond %{QUERY_STRING} ^([^&]*&)*sid=cansas(&.*)?$ 
RewriteRule ^cansas\.php$ /cansas-is-good-for-you? [L,R=301] 

そして、ちょうど最初の要求のためにこれを行うには、あなたはrequest lineをチェックする必要があります

+0

ありがとう、Gumbo。それは完全にそれを解決しました。 –

関連する問題