【问题标题】:PHP redirect to different URL depending on what URL is entered in browsersPHP 根据在浏览器中输入的 URL 重定向到不同的 URL
【发布时间】:2012-09-16 08:51:54
【问题描述】:

我在同一个主机帐户中有 2 个域共享同一个 IP 地址。我想根据用户在浏览器中键入的域重定向到不同的 URL。我想用 PHP。

示例:

<?php
If browser URL is www.example.com or example.com
REDIRECT to www.example.com

ELSE if;

browser URL is www.example.org or example.org
REDIRECT to www.example.org
?>

谢谢,我是新手,请详细说明,它应该适用于所有浏览器。

【问题讨论】:

  • 为什么不使用 .htaccess?简单得多。
  • www.example.com 重定向到www.example.com?你好无限循环...
  • 不是所有的网址都这样做google.com 将你定向到www.google.com 吗?
  • 绝对是 .htaccess 的工作。你想要一个 301 重定向。
  • "谢谢我是新手,所以请详细说明,它应该适用于所有浏览器。" ——这听起来像是你雇用我们为你做这件事。请提出一个明确的问题,并在此过程中向我们展示您的尝试。 :)

标签: php url redirect browser


【解决方案1】:

从您的问题来看,尚不清楚您到底想要什么。如果您有两个域(DNS)指向同一个 IP 地址,那么当您在浏览器中插入这些地址中的每一个时,您将转到该 IP 地址(到该机器/服务器)。该服务器可以(如果已配置)根据地址名称区分这些请求并将这些请求重定向到例如不同的子文件夹 - 这称为 虚拟主机。尝试搜索词“虚拟主机”并找出您真正需要的内容。

【讨论】:

    【解决方案2】:

    你有什么理由必须在 PHP 中这样做?它可以完成,但需要重建 URL;像

    <?php
    if (preg_match('/^www\./', $_SERVER['HTTP_HOST']) == 0) {
      $url = "http://www." . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
      header( "HTTP/1.1 301 Moved Permanently" ); 
      header( "Location: $url" ); 
      exit();
    }    
    ?>
    

    (为什么要使用 301,请参阅this question

    请注意,这不处理 HTTPS 或端口 80 以外的端口上的请求。如果您使用的是 Apache,则可以使用 mod_rewrite 引擎来完成; HTML 5 Boilerplate 提供的 .htaccess 文件包含一个示例。

    【讨论】:

    • 我只想让我的网站在所有带有重定向的浏览器中工作,这就是为什么我这么说的原因,因为我在一台主机上有 2 个域。我为另一个站点添加了 ELSE 语句,但我不是开发人员。我可以在这里和那里修改现有的 PHP。我不知道如何使用 htaccess 来做到这一点,因为我的主机有 PHP,我想使用 PHP。你们是说php不容易吗?如何在htaccess中做到这一点?在 KENS php 示例中,我应该将 URL 放在我最初示例中的位置...大声笑对不起..
    • 在 .htaccess 中执行此操作适用于所有浏览器。无需对 URL 进行硬编码;我提供的 PHP 代码检查主机名是否以“WWW”开头。如果没有,则添加它。最好使用 .htaccess 文件执行此操作,否则如果您从我给出的链接,你会找到一个示例 .htaccess 文件,其中包含有关如何执行此操作的说明。该文件的注释很好。
    • 我正在查看锅炉 htaccess.. 我应该在哪个标题下查看?
    • 请参阅评论“禁止或强制在 URL 开头使用“www.””之后的部分
    猜你喜欢
    • 2014-07-15
    • 2011-07-11
    • 2017-07-15
    • 1970-01-01
    • 2015-09-20
    • 1970-01-01
    • 1970-01-01
    • 2017-05-02
    • 2010-12-18
    相关资源
    最近更新 更多