2009-06-27 8 views
0

私のホームページはwww.nazgulled.netにあり、www.ricardoamaral.netという新しいドメインを購入しました。これらのドメインは両方とも同じ正確なサーバーを指しています。今私はちょうどテストしてるためApacheとhtaccessで古いドメインを新しいドメインにリダイレクトする問題

RewriteCond %{HTTP_HOST} ^(www\.)?nazgulled\.net [NC] 
RewriteRule ^(.*)$ http://www.ricardoamaral.net/$1 [L] 

が、アイデアが[L、R = 301 [L]を交換することです:私はリダイレクトには二つの問題を抱えている

は、私の現在のコードはこれです]私はすべてのものを動かす準備ができているとき、ちょうどあなたが知っている。

とにかく...

1)これは、「私はそれをしようとしたとき、私は「nazgulled.net」にアクセスすることはできません、それは私に、「サーバー内部エラー」を与えると私はドン、動作していませんトンを理解し、なぜ...私は理由を理解していない「ricardoamaral.net」「google.com」に置き換えた場合、リダイレクトがうまく動作するため:/

2)私はいくつかのサブドメインを持っていると私は希望それらのすべてをリダイレクトするのも好きです。私の最初の選択肢は、サブドメインごとに異なる書き換え条件/ルールを追加することですが、手作業のコードが大量にかかるため、存在しないサブドメインをユーザーが入力すると、リダイレクトされません。 1については

答えて

2

、あなたの代わりにこのようなものを使用することができます。

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName nazgulled.net 
    ServerAlias www.nazgulled.net 
    Redirect permanent/http://www.ricardoamaral.net/ 
</VirtualHost> 

を、私は同様の構成を使用し、それはあなた自身の書き換えルールについて

クエリパラメータ、パスなどを保持し、完璧に動作し、 QSAが含まれていない場合、がクエリパラメータを失うことに注意してください。

内部サーバーのエラーを診断するには、設定に応じて、仮想ホスト内のErrorLogディレクティブまたはグローバルなエラーログディレクティブによって提供されるログファイルを確認してください。それはあなたにエラーの正確な理由を与えるはずです。

+0

しかし、問題2を解決できません。しかし、私がこのソリューションを使用する場合、私はQSAフラグを気にする必要はありませんか?私はそれらを診断することができることを知っている、問題は私のドメインパネルにアクセスするURLが笑を働かないことです、私は私のドメイン管理者に連絡する必要があります... –

+0

おそらく私は#提案する。私は間違いなく別の提案を歓迎する。 –

+0

私はVirtualHostを各サブドメインに追加しなければならないでしょう。それは私が避けたいものです... –

3

あなたの状況に合わせて、別々の仮想ホストを作成するのが理想的だと思います。私がしばしばしているのは、同じサーバーにリダイレクトされている場所のドメインですが、別のフォルダに置くと、たとえばwwwフォルダをきれいに保つことができます。私のメインのサイトはこちらになります:

すべての私のリダイレクトについては
/var/www/example.com/public 

私はそうのようにそれらを配置します:

/var/www/redirects/example-2.com/public 

をリダイレクトサイトの各パブリックフォルダ内には、あなたの.htaccessファイルに次の行を追加します

RedirectMatch permanent /.* http://example.com/ 
0

これは最適なソリューションです。メモ帳ファイルを作成し、既存のものがない場合は.htaccessとして保存します。 .htaccessファイルを次のコードで更新して保存します。

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*) http://new-domain.com/$1 [R=301,L] 
関連する問題