I want nginx to return a 404 code when it receives a request which matches a pattern, e.g., /test/*
. How can I configure nginx to do that?
Essentially, the “404 error” indicates that your or your visitor's web browser was connected successfully to the website server or the host. However, it was unable to locate the requested resource, such as filename or any specific URL.
The rewritten URL uses two NGINX variables to capture and replicate values from the original request URL: $scheme is the protocol (http or https) and $request_uri is the full URI including arguments. For a code in the 3xx series, the url parameter defines the new (rewritten) URL.
location /test/ { return 404; }
Need to add "^~" to give this match a higher priority than regex location blocks.
location ^~ /test/ { return 404; }
Otherwise you will be in some tricky situation. For example, if you have another location block such as
location ~ \.php$ { ... }
and someone sends a request to http://your_domain.com/test/bad.php, that regex location block will be picked by nginx to serve the request. Obviously it's not what you want. So be sure to put "^~" in that location block!
Reference: http://wiki.nginx.org/HttpCoreModule#location
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With