0

ドメイン oldexample.com があり、パラメーターが指定されていない場合にのみ、そのドメインにアクセスするユーザーを newexample.com にリダイレクトしたいと考えています。ドメインにパラメーターが指定されている場合は、別の場所にリダイレクトする必要があります。したがって、oldexample.com/?id=5 は newexample.com にリダイレクトするべきではなく、newexample.com の内部ディレクトリにリダイレクトしたいと考えています。 newexample.com/dir/5 へ。

リダイレクトを機能させる方法の概要は次のとおりです。

oldexample.com -> newexample.com
oldexample.com/?id=3 -> newexample.com/dir/3
oldexample.com/index.php?id=6 -> newexample.com/dir/6

では、この作業を完了するには、htaccess に RewriteRules をどのように記述すればよいでしょうか。

4

1 に答える 1

3

試す:

RewriteEngine On

# for /
RewriteCond %{HTTP_HOST} ^oldexample.com$ [NC]
RewriteCond %{QUERY_STRING} !id=
RewriteRule ^$ http://newexample.com/ [L,R=301]

# for /?id=###
RewriteCond %{HTTP_HOST} ^oldexample.com$ [NC]
RewriteCond %{QUERY_STRING} ^id=([0-9]+)
RewriteRule ^(index.php)?$ http://newexample.com/dir/%1? [L,R=301]

最後のルールは and に対して一致し/ます/index.phpoldexampl.comこれらのルールは、ドキュメント ルートの htaccess ファイルにある必要があります。

于 2012-08-26T22:28:28.710 に答える