【问题标题】:How do I make a dynamic URL for a 404 xhtml page?如何为 404 xhtml 页面创建动态 URL?
【发布时间】:2018-11-03 23:16:46
【问题描述】:

我在 xml

中定义了页面的位置
<error-page>
   <error-code>404</error-code>
      <location>/faces/public/error-page-not-found.xhtml</location>
   </error-page>    
<error-page>

但我希望 URL 如下所示:

faces/{variable}/public/error-page-not-found.xhtml

其中变量的值会根据不同的情况而变化

【问题讨论】:

    标签: url xhtml http-status-code-404 url-redirection web.xml


    【解决方案1】:

    这个问题有点主观,虽然通常 HTTP 错误由服务器处理,并且大部分时间由服务器上的脚本语言处理(有时直接由 HTTP 服务器软件处理)。

    例如,Apache HTTP Web 服务器软件允许重写。因此,您可以在 example.com/123 请求页面,尽管那里没有“123”文件。在确定您是否有可用于该请求的某些内容的代码中,您还将确定该请求是否存在资源;如果不是,那么您的服务器脚本代码(PHP、ColdFusion、Perl、ASP.NET 等)将需要返回 HTTP 404。然后服务器代码将有一个小的 sn-p,您可以将其放入代码主体中比如你上面的代码。

    您不需要重定向到错误页面,您只需使用 HTTP 404 响应和您用来通知访问者那里没有任何内容的任何 XML 进行响应。 HTTP 服务器软件如 Apache 并不能真正生成代码(它只能引用或重写某些文件用于某些请求)。

    一般来说,如果您有一个使用数据库的网站,您会执行以下操作...

    1. 解析请求的 URL,以便确定访问者请求的内容。
    2. 确定是否应针对该请求检索资源(例如,查询数据库)。
    3. 一旦您知道某个资源是否可用,您就可以显示该资源(例如,会员的个人资料)或服务器 HTTP 状态(401:根本未登录,403:,虽然未授权但已登录,没有增加inprivileges 会授予权限,404: not found 等)并显示相应的内容。

    我强烈建议您阅读有关 Apache 重写和 PHP 的内容,尤其是 $_SERVER 数组(例如 &lt;?php print_r($_SERVER);?&gt;)。您将使用 Apache 重写对文件的所有请求,因此即使它们请求 /1、/a、/about、/contact/ 等,它们都将由一个 PHP 文件处理,您首先确定请求的 URL 是什么。这里和网络上的其他地方有大量问题可以帮助您快速开始处理所有问题,例如:Redirect all traffic to index.php using mod_rewrite。如果您不知道如何设置本地 HTTP Web 服务器,我强烈建议您查看XAMPP,这是我多年前开始使用的。祝你好运!

    【讨论】:

      猜你喜欢
      • 2015-01-08
      • 2018-11-22
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 2014-01-29
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      相关资源
      最近更新 更多