我想知道是否可以重定向2个不同的域,反之亦然。假设我有2个域,例如contextMenuStrip1.Show(ListViewCostumControl.lvnf, loc);
和www.abc.com
。现在,如果有任何观看者点击www.xyz.com
,则应将其重定向到www.abc.com
,当任何观看者点击www.xyz.com
时,他们都会被重定向到www.xyz.com
。是否有任何功能或托管服务可以做到这一点?我知道重定向可以简单地使用PHP www.abc.com
完成,但是一旦我这样做,它将被重定向到位置站点,没有办法获得原始站点。有人可以帮忙吗?感谢。
答案 0 :(得分:0)
假设在访问www.xyz.com时我们想将用户重定向到www.abc.com,当我们访问www.abc.com时,我们希望将用户重定向到www.xyz.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');
}
答案 1 :(得分:0)
首先,我会强烈建议不要与您的客户进行此操作。但是......使用.htaccess
,我们可以使用重定向设置查询字符串标志,以防止无限重定向循环。
如果地址仅适用于www.abc.com
,我们只有在标记(表明我们尚未重定向)的标志不存在时才会重定向到www.xyz.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()
重定向之前对其进行测试。类似的东西:
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
方法效率更高,因为服务器在重定向之前不必加载php文件。
此外,使用$_SESSION
变量是@AnimeshSahu提到的选项。但是,在所有情况下可能都不支持它们(例如Googlebot)
答案 2 :(得分:0)
您可以使用referer
RewriteCond%{HTTP_REFERER}!。 abc.com。 $ RewriteRule ^(。*)$ www.xyz.com/$1 [L,R = 301]
如果引用者不是ABC.com则重定向。
未经测试但应该有效,因为301将包含引用