John Rock John Rock - 2 years ago 77
HTML Question

Redirecting old .html page to new without html extension page?

I've just changed permalinks in my wordpress site.

And my old links were like that,

Now new links are

I'm getting 404 error at old links, how can i redirect all .html pages to new non .html pages with .htaccess?

Answer Source

In the htaccess file in your document root, add these before your wordpress rules:

RedirectMatch 301  ^/([^/]+)/([^/.]+)\.html$ /$1/$2/
RedirectMatch 301  ^/([^/]+)/([^/]+)/([^/.]+)\.html$ /$1/$2/$3/

Of if you need to limit it by hosts, you can use mod_rewrite:

RewriteCond %{HTTP_HOST} [NC]
RewriteRule ^([^/]+)/([^/.]+)\.html$ /$1/$2/ [R=301,L]

RewriteCond %{HTTP_HOST} [NC]
RewriteRule ^([^/]+)/([^/]+)/([^/.]+)\.html$ /$1/$2/$3/ [R=301,L]
Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download