私は次のようにいくつかのリダイレクトを達成しようとしています:
#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。