John Rock John Rock - 9 months ago 39
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?


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]