从一个站点重定向到另一个站点


redirecting from one site to another

有没有办法将网站上的每个页面重定向到另一个网站?

事实上,我的意思是,我拥有两个网站,例如:

  1. 1.com
  2. 2.com

2.com是我的主要网站。当我将一个页面添加到2.com(例如:2.com/index.html)时,1.com会忽略它,并使用重定向代码创建(1.com.index.html)到2.com/index.html。我能做这个吗?

php有什么方法可以做到这一点吗?

事实上,我需要的是一个自动创建文件的脚本,这些文件被添加到我的第二个网站上的第一个网站。那么,我可以用php和mysql或任何其他脚本或编程语言来做到这一点吗?

如果你拥有这两个域,你可以使用DNS-a记录或其他方式将它们重定向到你的网站,然后只需使用apache.org上列出的服务器别名(Server Alias)。如果用户访问了该域,他仍然会看到他访问过的原始域。

另一种方法是使用重写规则,如本博客所述:

RewriteCond %{HTTP_HOST} ^www.2.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^2.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.2.com$ [NC]
RewriteRule ^(.*)$ http://1.com/$1 [R=301,L]

然后你的用户总是会在他们的地址栏中看到1.com。

不可能使用PHP,因为PHP代码是在启动文件时执行的,而不是在启动服务器上的任何文件时执行。可能使用.htaccess:

RewriteRule (.*) http://www.newdomain.com/ [R=301,L]

从旧域的每个页面重定向至www.newdomain.com。


有关重定向的更多方法,请参阅本文

//将此脚本放在1.com上,它将重定向到2.com,反之亦然

<?php
header('Location: http://2.com/index.html');
exit();
?>

如果我没有正确理解你的问题,请告诉我,我会尽我所能帮助你。

//超级破解时间

<?php
// 1.com
$files = scandir('./*'); // not recursive, note that
$sent = file($files['log.txt']);
unset($files['log.txt']);
$notsent = array_diff($files, $sent);
foreach($notsent as $file) {
     $contents = file_get_contents($file);
     // Use curl to post to 2.com receiving script http://davidwalsh.name/execute-http-post-php-curl
     file_put_contents($sent, $file, FILE_APPEND);
}
?>

免责声明:尚未测试,但这是最直接的方式来做我认为你想要的。再说一遍,我真的不知道你为什么要这么做。

以上答案只能在加载任何html之前使用。如果你正在寻找更容易实现的东西,请使用这个:

<script>window.location = 'http://google.com';</script>

我不确定我是否完全理解你的问题

使用PHP

header('Location: http://2.com');

使用HTML

<meta http-equiv="refresh" content="2;url=http://2.com">

已提供更多信息:

将CNAME记录添加到1.com的DNS中,其值为2.com

我更喜欢在1.com上设置Nginx web服务器,并将其配置为代理,这样2.com实际上可以处理所有请求。因此,您可以避免在1.com上复制整个2.com,同时用户浏览器也不会像使用Location标头那样重定向到1.com。