我怎样才能configurationApache总是返回一个错误

我想故意抛出一个任意的错误。 <LocationMatch></LocationMatch>导演之间的适当的东西。 例如:

 <LocationMatch "^/myurl/.+"> ThrowError 503 </LocationMatch> <LocationMatch "^/anotherurl/.+"> ThrowError 504 </LocationMatch> <LocationMatch "^/safeurl/"> # not throwing an error from this path Options +Indexes </LocationMatch> 

我可以用什么来代替ThrowError 503 ? 我想强制服务器告诉用户我select的任何错误代码(例如404,403,501等)作为testing我的规则的一种手段。 最坏的情况如果我实际上不能在浏览器上抛出一个错误,我想要一个写入error_log的消息。

我知道我可以使用mod_rewrite来执行RewriteRule .* - [R=503,L]但是我只想使用核心模块(我没有将mod_rewrite编译到我的Apache中)。

更新 :已经发现我可以说RedirectMatch 410 . 这将向用户报告“消息”消息,作为一个潜在的解决scheme。

正如你自己提到的那样,作为mod_alias一部分的Redirect指令(对RedirectMatch不是必需的,我想呢?

从文档:

其他状态代码可以通过给出数字状态代码作为状态值来返回。 如果状态介于300和399之间,则URL参数必须存在,否则必须省略。 请注意,Apache代码必须知道状态(请参阅http_protocol.c中的函数send_error_response)。

例如: Redirect 303 /three http://example.com/other

编辑:

我不太了解C代码,但是从http_protocol.c快速查看,这些是您的select:

100继续
101交换协议
102处理

200好
201创build
202接受
203非权威信息
204无内容
205重置内容
206部分内容
207多状态

300多种select
301永久移动
302find
303见其他
304未修改
305使用代理
306未使用
307临时redirect

400错误的请求
401需要授权
402需要付款
403禁止
404没有find
405方法不允许
406不可接受
需要407代理validation
408请求超时
409冲突
410消失
411长度要求
412先决条件失败
413请求实体太大
414请求URI太大
415不支持的媒体types
416请求的范围不满足
417期望失败
418未使用
419未使用
420未使用
421未使用
422不可处理的实体
423locking
424失败的依赖
425没有代码
426需要升级

500内部服务器错误
501方法未实现
502错误的网关
503服务暂时不可用
504网关超时
不支持505 HTTP版本
506变式也谈判
507存储不足
508未使用
509未使用
510不扩展