web-dev-qa-db-ja.com

Apache構成:単一の<場所>に対して404を返す

ApacheがLocationタグを使用して単一のURLの404ページを自動的に返すようにすることは可能ですか?

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

Mod_rewriteまたは他のモジュールなしのソリューションが推奨されます。

9
AndiDog

「モジュールなし」の唯一の解決策は、リソースが存在しないようにすることです。場所が存在しない場合、Apacheは404を返します。

それ以外の場合は、mod_aliasまたはmod_rewriteを使用する必要があります。 mod_aliasは、よりシンプルで効率的なソリューションです。

Redirect 404 /your/url/path

これをvhost内で使用します。Locationブロックに配置する必要はありません。

/your/url/path以下のURLと一致させたくない場合は、RedirectMatchディレクティブを使用することもできます。

RedirectMatch 404 ^/your/url/path$

これ以上は mod_aliasのドキュメント で読むことができます

14
hobodave

どうやらこれにRewriteRuleを使用できます(RewriteEngineが有効になっていることを確認してください)。

RewriteRule ^/forbidden_ /nonexistent [L]

この情報は、Apacheメーリングリストアーカイブの " return 404 for specific url? "から取得しました。

1