【问题标题】:404 Error handling with $_SERVER['REQUEST_URI']使用 $_SERVER['REQUEST_URI'] 处理 404 错误
【发布时间】:2013-05-01 05:19:39
【问题描述】:

我的网站使用不同的语言。所以结构很简单:

root / => 404.php
       => template_404.php

root/subdir/ =>(language_xy)404.php 

在我的 htaccess 文件中,我使用重定向到 404.php 以防找不到页面。

在404.php 中,我使用$_SERVER['REQUEST_URI'] 获取输入的地址,该地址将回显给用户。

根据默认浏览器语言,404.php 将被重定向到包含语言文件的子目录文件夹。

原来是这样的:

输入了错误的 URL => 重定向到 404.php => 读出 URL 和默认语言 => 重定向到语言方向 (language_xy)404.php => 从 root 加载 template_404.php 并回显错误的 URL。

现在的问题是我想要像 example.com/langauge_xy/(language_xy)404.php 这样的干净 URL。这就是为什么我不想使用$_GET 将输入的URL 发送到(language_xy)404.php。我想我可以将输入的 URL 保存到 404.php 上的 SESSION 中,然后在 template_404.php 上简单地回显。这是第一次工作,但是由于某种原因重新加载页面时,会话的内容发生了变化。我不知道为什么会这样。 $_SESSION['url'] 只使用一次。

因此,如果有人可以就如何解决此问题给我提示,我将不胜感激。

非常感谢。

【问题讨论】:

    标签: php html error-handling http-status-code-404


    【解决方案1】:

    您可以这样做,或者您可以创建一个语言文件并使用一个 404.php 文件,您可以根据会话中的语言提供不同的内容。

    查找用户语言:detect user language in PHP - stable solution

    语言切换:Am I breaking any "php good practice" in the following php array which deals with 3 (human) languages?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-22
      • 2019-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多