[wp-hackers] cheap 404 serving

Ryan McCue lists at rotorised.com
Tue Oct 16 11:18:36 UTC 2012

"Matthias P. Würfl" wrote:
> All the rewrite-rules i can find send every request that cannot be
> served as static content to wordpress. It would be cheaper to check the
> request if handeling by wordpress makes sense at all before wordpress is
> bootstrapped.
> - URL ends on ".html" or "/"

Both of these can be used by WordPress (especially ending with a
trailing slash, which most sites use). If you don't use them in your
site, it should be fairly trivial to not send that to WP.

> - Accept-header contatins "text/html"

All pages requested from WP (with the exception of RSS/Atom feeds and
XML-RPC) will have "Accept: text/html, ...", otherwise the server would
have no idea what to send back. I think you may be misunderstanding what
this header does.

> Are there any ready-to-use recipes to serve 404 errors cheaper? For
> Nginx? :-)

Alright, so as far as I can tell, this breaks down into a few places:

Anything starting with "wp-admin/", "wp-content/" or "wp-includes/" can
be ignored, since WP rewrite rules should never touch those.

Something like this should fix that (for nginx):

	location ~* ^(/wp-includes|/wp-content|/wp-admin) {
		try_files $uri $uri/ =404;

(Assuming you're not using the 404 handler for WordPress; please don't
do that.)

If there's interest in this, I'll write up a longer version with all the
rules I'd put in a site's file for nginx.

Ryan McCue

More information about the wp-hackers mailing list