I want to temporarily redirect all requests for a site to index.html, using Apache only. Is this mod_rewrite approach going to work, and is it the right way to do it?

RewriteEngine on
RewriteRule   ^.*$  /index.html  [R]
  • 1
    I think you should use [R=302] to specify it is temporary.
    – pritaeas
    Jan 24, 2011 at 16:02
  • @pritaeas Note that R and R=302 are the same. Apache defaults to a 302 unless stated otherwise.
    – MrWhite
    Oct 31, 2015 at 19:08

1 Answer 1


You need to use something like this I think:

RewriteRule !^/index.html$  /index.html [R=302]

Like pritaeas noted, you should use the 302 code to specify that the move is temporary. And you want to match everything but /index.html, otherwise you'll send the browser on an infinite redirect loop.

Also, if you have any images, stylesheets, JS files, or other resources that are in the same directory or subdirectory, you need to also make exceptions for those or turn the rewrite engine off in those directories.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.