1

私は作ろうとしてきました:

http://site.com/file.php?x=foo

リダイレクト先:

http://newsite.com/something/completely/different/

以下を使用します。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^file\.php?x=foo$ http://newsite.com/something/completely/different/ [R=301,NC,L]

</IfModule>

しかし、それは何もしません(htaccessに触れたことがないかのように、同じ古いページをロードするだけです)。

足りないものはありますか?

助けてくれてありがとう!

4

1 に答える 1

1

?最後の.phpは、最後のpオプションを作成しています (so.phpx=fooまたは.phx=foowould match)。実際には試合のキャラクターとは見なされていません。次のようにエスケープしてみてください?:\?

編集

解決策が何であったか疑問に思っている人のために:

RewriteRuleクエリ文字列の引数は、一致する文字列には渡されません。したがって、最初にRewriteCondonを作成してからQUERY_STRING、引数なしで URL を照合する必要があります。例えば:

RewriteCond %{QUERY_STRING} x=foo
RewriteRule ^file\.php$ http://newsite.com/something/completely/different/ [R=301,NC,L]

おそらく/うまくいけば、これを行うためのより良い方法があります(これRewriteCondは他のルールにカスケードするため、面倒です).

于 2012-04-30T01:56:17.943 に答える