Try resetting the default error document at the start of your .htaccess
file:
ErrorDocument 410 default
If you have a custom 410 error document defined elsewhere in your server config then this could end up being routed by WordPress. (I’ve encountered some shared hosts that (for some reason) define a custom “default” ErrorDocument in the server config. If this error document does not exist then it will end up being rewritten to index.php
and processed by WordPress.)
Incidentally, when you use a status code other than 3xx in the RewriteRule
then you should simply use a hyphen (-
) in the RewriteRule
substitution. (It’s ignored anyway.) And as @janh mentioned in comments, “R=410
implies the L
, but for clarity, I’d simply use G
“. So, this is better written as:
RewriteRule \.ready - [G]
To match “.ready” anywhere in the URL-path. The (.*)
prefix is superfluous, and unnecessarily capturing the pattern is wasteful. If this should only occur at the end of the URL-path, include an end-of-string anchor ($
). eg. \.ready$