An htaccess redirect checker shows what your server actually sends once a redirect rule is in .htaccess. Enter the old URL above and it lists every hop with its status code, such as 301, 302, 308 or 200, and the address each hop points to. If the first hop is a 302 where you meant a permanent move, the rule is missing its status.
What the result says about your rule
- A 301 on the first hop means the rule is permanent. In Apache that's Redirect permanent, or a RewriteRule with the flags [R=301,L].
- A 302 usually means the status was left out. Apache's Redirect directive and the R flag in mod_rewrite both send 302 when you don't name a code.
- A 200 on the old URL with no hops means the rule never ran. Apache ignores .htaccess files completely unless they've been enabled for that directory with AllowOverride.
- A 500 means Apache couldn't use the rule. A RewriteRule with a status code Apache doesn't recognise causes one.
- A loop means the rule matches the address it sends people to, so each hop starts the same redirect again. The checker stops and flags it.
Testing a rule after you change .htaccess
Apache reads .htaccess on every request, so there's no restart to wait for. Save the file and run the old URL again.
If you see more than one hop, such as http to https and then the old path to the new one, point the first rule straight at the final address where you can. Every extra hop is one more request before the page loads.
The checker only sees what the server sends back. It doesn't open your .htaccess file or check its syntax, and it can't tell whether a hop came from .htaccess, the main server config or a plugin. It follows up to 10 redirects.
The default codes and .htaccess rules come from the Apache HTTP Server documentation, read in October 2026.
This redirect checker is free with no signup. SearchBlueprint, who make it, sell SEO planning for websites: which searches each page should answer.