0

htaccessでこの形式を使用して、いくつかのページ/リンクをリダイレクトしています。

RewriteEngine On
RewriteRule special.php http://www.mysite.com [R=301]
...
...
RewriteRule http://www.mysite.com/special.php?t=master http://www.mysite.com/index.php?q=former [R=301, L]

最初に、トップラインだけが何かをキャッチしていることに気づきました。実際、ボトムラインのような他のラインは、そのトップラインを入れるまで何もしませんでした。なぜ何かアイデアはありますか?

次に、mysite.com / special.php?t = graveは、上記の一番上の行によってmysite.com/?t=graveにリダイレクトされるため、URLに変数が保持されます。私はこれを望んでいません、私はそれが変数なしでmysite.comに行くことを単に望んでいます。どうすればよいですか?

ありがとう、デレク

4

1 に答える 1

1

まず、最初のルールは、その後に多数の文字が続く場合でも、その中に含まれるすべてのURIをキャッチします。special.phpのみに正確に制限しspecial.php、クエリ文字列が確実に破棄されるようにするには、次のように変更します。

RewriteRule ^special.php$ http://www.mysite.com/? [L, R=301]

次に、書き換えルールは、http://www.mysite.com/の (最後のスラッシュに注意)とクエリ文字列の(疑問符の後の部分)の部分にのみ一致します。したがって、これらのルールの形式を次のように変更すると、

RewriteCond %{QUERY_STRING} t=master
RewriteRule ^special.php$ index.php?q=former [R=301, L]

あなたは行ってもいいはずです。

于 2012-05-15T02:07:05.117 に答える