If you have been following the growth of encryption on the web (https) and the fact that you can now get free SSL certificates (much like the one on this site) using Lets Encrypt, there is very little reason for not having your site running https, making your data encrypted between the server and the user, making everyone more secure.

If you are doing this in Apache, then most open-source projects will suggest the you use the rewrite engine inside apache. Something like this:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]

However, if you are using nginx you will need to write some configuration inside your virtualhosts to make the redirection happen. It is not that difficult and when you have got your head round it, hopefully the config of nginx will be something that you end up preferring to Apache. Anyway, here is the code:

server {
    listen 80;
    listen [::]:80 default_server;
    server_name example.com www.example.com;
    return 301 https://example.com$request_uri;
}

Basically speaking this will liste to any requests on port 80 and forward them all to https://www.example.com$request_uri - therefore http://example.com/i-love-https is forwarded to https://www.example.com/i-love-https. Simple. Excellent.