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