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

Viewed 6087

I've just changed permalinks in my wordpress site.

And my old links were like that,

http://www.sitename.com/category/postname.html

Now new links are

http://www.sitename.com/category/postname/

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

3 Answers

In the htaccess file, just put:

Redirect 301  /postname.html  http://www.sitename.com/category/postname/

The accepted answer (above) from Jon Lin caused some issues for me. This is my result, which works well, and is a bit more compact.

It works for both, with and without directories in the path.

Oneliner:

RedirectMatch 301  ^/(.*)\.html$ /$1

Or if you need it limited by host:

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

Example: enter image description here

Related