skip to Main Content

I have recently change some URLs from my website to make it more SEO friendly. I have old urls that I would like to link to new urls. The old urls are no longer available but I would like the old urls to redirect to the new urls.

My current 301 redirect code below is for http:// to https://www, which I need.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mywebsite.com [NC]
RewriteRule ^(.*)$ https://www.mywebsite.com/$1 [L,R=301,NC]

How do I make it so that I can also redirect from old urls to new urls as well. Is it possible with the 301 redirect?

Old url examples:
www.mywebsite.com/book-stories.html
www.mywebsite.com/book-journals.html

New url examples:
www.mywebsite.com/stories.html
www.mywebsite.com/journals.html

Any help would be much appreciated.

2

Answers


  1. Chosen as BEST ANSWER

    I tried the above code and didn't work and to be honest I could have been doing it incorrectly. I did look into it further and tried another 301 redirect

    Redirect 301 book-stories.html https://www.mywebsite.com/stories.html
    Redirect 301 book-journals.html https://www.mywebsite.com/journals.html
    

    That worked for me. Hope this helps anyone else who will encounter this issue.


  2. If you only have a handful, static redirections you can do it appending RewriteRules just as you are doing:

    RewriteRule ^book-stories.html$ stories.html [R=301]
    RewriteRule ^book-journals.html$ journals.html [R=301]
    

    If they all have a fixed pattern, you could exploit that to reduce the amount of rules.

    RewriteRule ^book-([a-z0-9.-]+).html$ $1.html [R=301]
    

    If you have many different rules that you will be updating, you can look into indexed maps or even database-based RewriteMaps

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search