2017-10-22 9 views
0

2つの異なるドメインをリダイレクトすることができるのだろうかと思います。私がwww.abc.comwww.xyz.comのような2つのドメインを持っているとします。ここで視聴者がwww.abc.comをクリックすると、それはwww.xyz.comにリダイレクトされ、視聴者がwww.xyz.comをクリックすると、www.abc.comにリダイレクトされます。これを行うことができる機能やホスティングサービスはありますか?リダイレクトはPHP header('Location')を使用して簡単に行うことができますが、これを実行すると、サイトの場所にリダイレクトされるため、元のサイトを取得する方法はありません。誰でも助けてくれますか?ありがとう。2つの異なるドメインをリダイレクトすることはできますか?

+0

無限のリダイレクトで終わることなくこのようなことを想像してみませんか? –

+0

その理由は、それを解決する方法や方法があるかどうかという質問があります:) – Gamer

+0

しかし、なぜあなたはそのようなものをデザインしますか? –

答えて

0

はwww.xyz.comに行くときに我々はwww.abc.comに行くときに我々が使用することによりwww.xyz.com

にユーザーをリダイレクトしたいとwww.abc.comにユーザーをリダイレクトしたいと仮定すると、セッション、私たちはできます。今

<?php 
//on abc.com 
session_start(); 
if(!isset($_SESSION['abc']) || $_SESSION['abc'] != true){ 
    $_SESSION['xyz'] = true; 
    header('Location: www.xyz.com'); 
} 

<?php 
//on xyz.com 
session_start(); 
if(!isset($_SESSION['xyz']) || $_SESSION['xyz'] != true){ 
    $_SESSION['abc'] = true; 
    header('Location: www.abc.com'); 
} 
0

まず、私はあなたのクライアントでこれを行うにはない強力なケースになるだろう。しかし... .htaccessを使用すると、無限のリダイレクトループを防ぐためにリダイレクトでクエリ文字列フラグを設定できます。

アドレスは(我々はすでにリダイレクトされていなかったことを知らせる)フラグこれは未テストですが、コンセプトは動作します

存在しない場合にのみ、我々はwww.xyz.comにリダイレクトwww.abc.comに対するものである場合。

RewriteEngine On 
#abc => xyz 
RewriteCond %{HTTP_HOST} ^www\.abc.com 
RewriteCond %{QUERY_STRING} !^flag=fromxyz$ 
RewriteRule ^(.*)$ www.xyz.com?flag=fromabc [L,R=301] 

#xyz => abc 
RewriteCond %{HTTP_HOST} ^www\.xyz.com 
RewriteCond %{QUERY_STRING} !^flag=fromabc$ 
RewriteRule ^(.*)$ www.abc.com?flag=fromxyz [L,R=301] 

また、PHPで同じことを達成することができます - リダイレクトにクエリ文字列を追加し、header()リダイレクトする前にそれをテストすること。ような何か:サーバーがリダイレクトする前に、PHPファイルをロードする必要はありませんよう

if ($_SERVER[HTTP_HOST] == "www.abc.com"){ 
    if ($_SERVER[QUERY_STRING] !== "flag=fromxyz"){ 
     header("Location: www.xyz.com?flag=fromabc.com"); 
     die(); 
    } 
} 
if ($_SERVER[HTTP_HOST] == "www.xyz.com"){ 
    if ($_SERVER[QUERY_STRING] !== "flag=fromabc"){ 
     header("Location: www.abc.com?flag=fromxyz.com"); 
     die(); 
    } 
} 

.htaccess方法は、より効率的になります。

また、変数@$_SESSIONの使用は@AnimeshSahuで言及されているオプションです。しかし、彼らは(例えば、Googlebotの)すべてのケースではサポートされない場合があり

0

あなたはリファラ

するRewriteCondの%{HTTP_REFERER}を使用することができます!。 abc.com。 $ RewriteRule ^(。*)$ www.xyz.com/$1 [L、R = 301]

リファラーがABC.comでない場合はリダイレクトします。

テストされていませんが、301にリファラーが含まれるようにしてください。

関連する問題