perl“假”一个404,但让apache处理它

时间:2014-09-15 20:41:19

标签: apache .htaccess

我试着寻找答案,但没有运气。基本上我有一个.htaccess文件,它指定了一个处理404s的脚本:

ErrorDocument 404 /cgi-bin/handle_errors.cgi?404

我有另一个脚本,它通过重写规则根据查询字符串处理页面请求:

RewriteRule ^/path/handler/(.*)$ /cgi-bin/path_handler?$1 [QSA,L]

这样

insaner.com/path/handler/123

将显示由以下内容生成的内容:

insaner.com/cgi-bin/path_handler?123

如果满足“123”的某些条件。如果不是,我想发出“404”状态,但是由apache本身处理(实际上由/cgi-bin/handle_errors.cgi?404处理)。那么,这样的事情可能吗?我知道我可以在打印404状态后从脚本中调用/cgi-bin/handle_errors.cgi?404,但有没有办法让apache处理404?即,如果我稍后在.htaccess中注释掉该行,那该apache会发出标准的404响应吗?

另外,是

 print "Status: 404\n\n";

对浏览器来说足够了吗?或者我需要做什么:

 print "Status: 404 Not Found\n\n";

或类似的东西?

1 个答案:

答案 0 :(得分:0)

CGI.pm documentation

中找到了我的问题第二部分的答案
  

请注意,人们可读的短语也应该存在   符合RFC 2616第6.1节。