2012-04-20 17 views
3

ドメインexample.comとwww.example.comをhttp://example2.comにリダイレクトしようとしていますが、私の投稿へのすべての訪問をhttp://example.com/sdfhsにしておきたいと思います。ルート(およびルートのみ)のURLを別のドメインにリダイレクトしますか?

基本的に、私はルートとwwwドメインをリダイレクトし、残りの部分はそのままにします。

.htaccessでこれを行うにはどうすればよいですか?

答えて

0

URLを少なくとも1文字の(.+)にマッチさせるだけで、書き換えエンジンの最後のルールとして[L]を表示することができます。 その後、(.*)を新しいドメインにリダイレクトします(その時点までに一致しない唯一のものはルートになります)。あなたはまだこの問題を持っている場合

RewriteEngine On 
RewriteRule ^(.+)$ - [L] 
RewriteRule ^(.*)$ http://example2.com/$1 [R=301,L] 
+0

これがexample.comにすべてのドメインをリダイレクトします。私はそれが望まれているとは思わない。 –

0

なぜ

RewriteEngine On 
RewriteCond ${HTTP_HOST} example\.com|www\.example\.com 
RewriteRule ^/?$ http://example2.com [L] 
+0

これは、すべてのドメインをexample.comにリダイレクトします。私はそれが望まれているとは思わない。 –

+0

@ JasonMcCreary申し訳ありませんが、あなたが正しいです、私はこれが彼の(仮想)ホストにのみ適用されることを覚えていました。 http_hostのテストを更新しました。私のreパターンが正しいことを願っています。 –

3

は知らないが、私は自分のドメインの1(Yourlsインストール)でそれを持っていました。試してください:

RewriteEngine On 
RewriteRule ^$ http://www.example.com/ [R=301,L] 

私のインストールでは動作しますが、サイトで確認してください。

0

httpd.confを通じてのmod_rewriteと.htaccessを有効にしてから.htaccessDOCUMENT_ROOT下のディレクトリにこのコードを配置:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond ${HTTP_HOST} ^(www\.)?example\.com$ [NC] 
RewriteRule ^$ http://example2.com [L,R=301] 
関連する問題