Redirecting old .html page to new without html ext

2019-05-06 21:41发布

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?

2条回答
唯我独甜
2楼-- · 2019-05-06 22:06

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} sitename.com [NC]
RewriteRule ^([^/]+)/([^/.]+)\.html$ /$1/$2/ [R=301,L]

RewriteCond %{HTTP_HOST} sitename.com [NC]
RewriteRule ^([^/]+)/([^/]+)/([^/.]+)\.html$ /$1/$2/$3/ [R=301,L]
查看更多
贪生不怕死
3楼-- · 2019-05-06 22:16

In the htaccess file, just put:

Redirect 301  /postname.html  http://www.sitename.com/category/postname/
查看更多
登录 后发表回答