【问题标题】:Issues with redirect code重定向代码问题
【发布时间】:2023-03-10 18:14:02
【问题描述】:

当人们访问我的主页 index.php 时,我希望他们被重定向到 index.php?page_id=2

为此,我在头部添加了一个简单的 html 代码:

<meta HTTP-EQUIV="REFRESH" content="0; url=http://www.domain.com/index.php?page_id=2">

问题是我网站的目标页面和所有其他页面运行的代码是循环运行的。我正在使用 Wordpress。是否有任何解决方案可以在访问 index.php 时将它们定向到 index.php?page_id=2 而不会循环?

任何帮助将不胜感激。

【问题讨论】:

    标签: html wordpress loops redirect


    【解决方案1】:

    为避免无限循环,只需检查 $_GET 变量是否为空。如果是这样,做一个重定向:

    if (empty($_GET))
    {
        header('Location: index.php?page_id=2');
    }
    

    【讨论】:

    • 我刚试过这个,没用。你确定你写对了吗?我在脚本顶部添加了它...
    • 我收到“警告:无法修改标头信息 - 标头已发送”错误...
    • 这应该是PHP打开后的第一件事
    • 它现在工作了,我不得不在其他地方添加代码,因为 wordpress 编辑器的结构类似于星际迷航三录仪。尽管如此,非常感谢您的帮助。
    【解决方案2】:

    从根本上说,当 index.php 在其查询字符串上有参数(例如 page_id)时,您需要确保不插入“元刷新”。

    如果您只是在 PHP 中执行此操作,您将编写一个 if 语句,使用 $_GET 哈希表检查查询字符串的内容,即 if $_GET["page_id"] ...

    http://www.php.net/manual/en/reserved.variables.get.php

    在 wordpress(我对此知之甚少)中,您可能会发现完全不同的解决方案正是您想要的。例如,元刷新实际上被认为不如所谓的 HTTP 重定向 - 具有相同效果的标头。

    在 PHP 中是:

    http://php.net/manual/en/function.http-redirect.php

    我注意到 wordpress 文档包含对重定向实用程序的引用;我试图提供链接,但 StackOverflow 阻止我提供更多链接。在他们的文档中搜索“重定向”可能会有所帮助。

    一般来说,我希望看到一个 if 语句来决定是否使用 PHP 机制或 Wordpress 发出重定向。

    我希望这会有所帮助。

    【讨论】:

    • 优秀的回复大卫。您能否向我提供 IF php 代码以进行重定向?我没有PHP经验,我只怕html。
    猜你喜欢
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-04
    相关资源
    最近更新 更多