Force Ubuntu Server to redirect http to https

If you want to redirect your web address from http to https, you will have to configure your server’s virtual host file.

Edit the virtualhost file to update the port 80 portion; replace “test.com” with your domain name:

sudo nano /etc/apache2/sites-available/test.com.conf

Edit the :80 portion (in bold), replacing <ip_or_host> with your domain name:

<VirtualHost *:80>
        ServerName <ip_or_host>
        Redirect "/" "https://<ip_or_host>"
</VirtualHost>

<VirtualHost *:443>
        ServerName <ip_or_host>
        DocumentRoot /var/www/whateverfolder
        SSLEngine on
        SSLCertificateFile      /etc/ssl/certs/apache-selfsigned.crt
        SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
        <Directory /var/www/whateverfolder/public>
           DirectoryIndex index.php
           AllowOverride All
           Require all granted
        </Directory>
</VirtualHost>

Save the .conf file

Modify the default Apache config file:

sudo nano /etc/apache2/sites-available/000-default.conf

Then add the bold portion (starting with “RewriteEngine on”) to the bottom of the file. Replace example.com with your domain name.

<VirtualHost *:80>
     ServerAdmin admin@example.com
     DocumentRoot /var/www/html/example.com/
     ServerName example.com
     ServerAlias www.example.com

     <Directory /var/www/html/example.com/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/error.log
     CustomLog ${APACHE_LOG_DIR}/access.log combined


RewriteEngine on
RewriteCond %{SERVER_NAME} =example.com [OR]
RewriteCond %{SERVER_NAME} =www.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>

Enable the .conf files:

sudo a2ensite test.com.conf
sudo a2ensite 000-default.conf

Reboot your apache server:

sudo service apache2 restart

Test your server config in your web browser by typing in: http://www.example.com

Leave a comment

Your email address will not be published. Required fields are marked *