无需更改 DNS 即可进行域名重定向

无需更改 DNS 即可进行域名重定向

我们在另一个 Linux 主机上备份了我们的网站 www.site.com。在 cpanel 中,该备份设置为 wwwt.site.com。但是没有为其分配域名。我们通过在 hosts 文件中添加 ip 地址和主机名来访问备份站点。

现在我们希望在不修改 DNS 的情况下,当用户输入 www.site.com 一小时内显示 wwwt.site.com。

如何将 www.site.com 的请求重定向到 wwwt.site.com ?

注意:我们在备份托管 IP 地址中有另一个实时网站,并且没有指向备份站点的域名

希望有人知道答案

答案1

使用 .htaccess 来避免 PHP 开销。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]

答案2

实际上没有自动的方法来实现这个功能,但是,您可以简单地将 PHP 脚本添加到 www.site.com 以重定向到 wwwt.site.com

像这样:

<?php header('Location:http://wwwt.site.com/'); ?>

答案3

你的问题有点不清楚。

假设:

  • www.site.com 和 wwwt.site.com 位于同一台本地机器上。
  • www.site.com 有一个公共 IP 地址
  • wwwt.site.com 没有公共 IP 地址,但在本地机器的 /etc/hosts 文件中有一个条目。
  • 您的 Web 服务器是 Apache。

要求:

  • 暂时从 www.site.com 提供 wwwt.site.com 服务

根据给定的假设,我建议使用带有代理扩展的 mod_proxy 或 mod_rewrite。

示例 1:

使用 mod_proxy 从 www.site.com vhost 提供 wwwt.site.com 服务

<VirtualHost *:80>
    ServerName www.site.com

    ProxyRequests off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    ProxyPass / http://wwwt.site.com/ retry=0
    ProxyPassReverse / http://wwwt.site.com/
</VirtualHost>

示例 2:

使用 mod_rewrite 从 www.site.com vhost 提供 wwwt.site.com 服务

<VirtualHost *:80>
    ServerName www.site.com
    RewriteEngine on
    # The RewriteCond isn't necessary, but allows some flexibility.
    # If the file exists - redirect requests, otherwise do nothing.
    RewriteCond /var/www/redirect-reqs -f
    RewriteRule ^/(.*)$ http://wwwt.site.com/$1 [P]
</VirtualHost>

希望这可以帮助。

答案4

agy,wwwt.site.com 位于不同的 Linux 托管服务器中,所有其他假设均正确。此服务器的 IP 当前托管另一个网站。因此使用http://ip将显示

相关内容