题 Apache配置:返回单个的404


是否可以让Apache使用Location标签自动为单个URL返回404页面?

<Location "/some/url">
    # ???
</Location>

没有mod_rewrite或任何其他模块的解决方案。


5
2018-03-01 18:34






答案:


唯一的解决方案是“没有任何模块”,就是没有资源存在。如果该位置不存在,则Apache将返回404。

否则,您将需要使用mod_alias或mod_rewrite。 mod_alias是更简单,更有效的解决方案:

Redirect 404 /your/url/path

您在vhost中使用它,不需要将它放在Location块中。

你也可以使用 RedirectMatch 如果您不想匹配以下URL,请使用该指令 /your/url/path

RedirectMatch 404 ^/your/url/path$

这个和更多可以阅读 mod_alias文档


9
2018-03-01 19:04



不错的想法,但遗憾的是,对于任何与'/ your / url / path / *'匹配的内容,这也会返回404,这对我来说是一个问题。 - AndiDog
@Andi:你的问题应该更具体。 - hobodave
对不起;) RedirectMatch 解决方案就像一个魅力。 - AndiDog


显然你可以用一个 RewriteRule 为此(确保启用了RewriteEngine):

RewriteRule ^/forbidden_ /nonexistent [L]

从“获取此信息”返回404特定网址?“在Apache邮件列表档案中。


0
2018-03-01 18:43



好吧,我想要一个通用的非重写解决方案。我已经知道了mod_rewrite解决方案。 - AndiDog