.htaccess to Redirect All Traffic to One Page (410 Gone)
We have a client that is closing its doors. We want开发者_Python百科 to redirect all traffic that goes to their domain to a new page index.html with a few images in the _img subdirectory. (The page explains what happened, what current customers can expect with their current orders, etc.)
I've read about possibly using HTTP 410 Gone as the best way to technically explain to bots, etc. that the site is not there, isn't coming back and isn't providing a forwarding address. What would be the best way to do this in an .htaccess file, and direct users to the new index.html?
You can use mod_rewrite for this.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.html$ index.html [L,R=410]
This rule will rewrite requests to non-existing files to index.html and send the 410 status code along with the response. But this requires Apache 2 as R=4xx is only available since Apache 2.
You can simply use an .htaccess file like this:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !.*index\.php
RewriteRule (.*) /index.php
</IfModule>
This is much simpler:
RedirectMatch temp .* http://www.newdomain.com/newdestination.html
It redirects every single request to newdestination.html.
Note that if you point to the same domain as the source, there will be an infinite loop and this will fail. This works great pointing to a new domain, though.
精彩评论