如何为404 xhtml页面创建动态URL?

时间:2018-05-24 16:36:37

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

我已在 xml

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

但我希望网址如下所示:

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

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

1 个答案:

答案 0 :(得分:0)

这个问题有点主观,但一般来说,HTTP错误是由服务器处理的,大部分时间是由服务器上的脚本语言处理的(有时候直接是HTTP服务器软件)。

例如,Apache HTTP Web服务器软件允许重写。所以你可以在 example.com/123 上请求一个页面,尽管没有&#34; 123&#34;归档那里。在将确定您是否有可用于该请求的内容的代码中,您还将确定该请求是否存在资源;如果没有,那么您的服务器脚本代码(PHP,ColdFusion,Perl,ASP.NET等)将需要返回HTTP 404.然后,服务器代码将有一个小片段,您将放入代码的主体,如你上面的代码。

您不需要重定向到错误页面,只需回复HTTP 404响应以及您用来通知访问者没有任何内容的任何XML。 Apache之类的HTTP服务器软件无法真正生成代码(它只能引用或重写某些文件以用于某些请求)。

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

  1. 解析所请求的网址,以便确定访问者请求的内容。
  2. 确定是否应为该请求检索资源(例如,对数据库进行查询)。
  3. 一旦你知道某个资源是否可用,你就可以显示资源(例如成员的个人资料)或服务器的HTTP状态(401:根本没有登录,403:,虽然没有登录)授权,如果没有增加权限将授予权限,404:未找到,等等)并显示相应的内容。
  4. 我强烈建议您阅读有关Apache重写和PHP的内容,特别是它的$_SERVER数组(例如<?php print_r($_SERVER);?>)。您使用Apache重写对文件的所有请求,因此即使他们请求/ 1,/ a,/ about,/ contact /等,它们都会被单个PHP文件处理,您首先要确定所请求的URL是。网上有很多问题可以帮助你真正快速地开始处理所有这些问题,例如:Redirect all traffic to index.php using mod_rewrite。如果您不知道如何设置本地HTTP Web服务器,我强烈建议您查看XAMPP,这是我多年前开始的。祝你好运!