0

私は次のようにいくつかのリダイレクトを達成しようとしています:

#Basic Rule Set
RewriteRule ^/path$ http://newhost.com/Page?pagename=form1000 [R=301]
RewriteRule ^/path/index.html$ http://newhost.com/Page?pagename=form1000 [R=301]

正常に動作します。

ただし、ソースと宛先にクエリ文字列を使用してリダイレクトすると、上記の宛先 URL に戻ります。たとえば、

# Advanced  Rule Set
RewriteRule ^/path/index.html?var=foo$ http://newhost.com/Page?pagename=form1000?id=hello  [R=301]
RewriteRule ^/path/index.html?var=bar$ http://newhost.com/Page?pagename=form1000?id=byebye [R=301]
RewriteRule ^/path/index.html?var=xyz$ http://newhost.com/Page?pagename=form1000?id=world  [R=301]

すべて にリダイレクトしhttp://newhost.com/Page?pagename=form1000ます。RewriteCond %{QUERY_STRING} ^var=(.*)$ [NC]上記の 3 つのルールの前にとを試しましたがRewriteCond %{REQUEST_URI} ^/path/index.html [NC]、それでも にリダイレクトされhttp://newhost.com/Page?pagename=form1000ます。基本ルール セットと詳細ルール セットの順序を入れ替えて、すべてを にリダイレクトしましたhttp://newhost.com/Page?pagename=form1000

これらのルール セットを機能させる方法について何かアイデアはありますか? CentOS 6.x、Apache 2.2。

4

1 に答える 1