2012-02-10 4 views
0

私はすべてを新しいドメインに移しています。古いドメインのURLがhttp://example.com/article/article_title/date/and/etcの場合、http://anotherserver.com/extradir/article/article_title/date/and/etcにある別のサーバーにリダイレクトします。mod_rewrite server.com/directoryからnew.com/directorynew/directory

リクエストパスの最初の引数が「記事」ではない場合は、ドメイン名を変更してリダイレクトするだけです。ここで

は私の刺しです:

RewriteRule ^/article/(.*)$ http://anotherserver.com/extradir/article/$1 [R=301,L] 
RewriteRule ^(.*)$ http://anotherserver.com$1 [R=301,L] 

最初は一致しません。 2番目は正常に動作します。

これはDrupal上にあり、Drupalディレクティブを避けるためにhttpd.confのRewriteEngine Onディレクティブのすぐ下に配置されています。

これは、httpd.confではなく.htaccessです。

トップのRewriteRuleが機能しない理由についてのアイデアはありますか?

答えて

1

最初のルールがうまくいかない理由は考えられません。それを私の仮想ホスト設定に入れれば、私にとってはうまくいきます。 RedirectMatchを試しましたか?

RedirectMatch 301 ^/article/(.*)$ http://anotherserver.com/extradir/article/$1 
RedirectMatch 301 ^(.*)$ http://anotherserver.com$1 
+0

あなたの欲求不満を表現する人が必要な場合があります。このリダイレクトは機能します。問題は、このリダイレクトコードが間違ったディレクティブにあったことです。したがって、動作していましたが、サーバーのdocrootにはありませんでした。 mod_rewriteのルールを別のサーバーでテストしていただきありがとうございます。 - ジョー –