Apache webserver server the website over the internet. For the individual website the it create it’s virtual host using apache and redirect user to the specific directory. We can handle n number of website on a single server as long as server and handle the load.
Apache web server should be installed, domain names configured through virtual hosts that specify the ServerName with the SSL certificates for the domain.
Step1: Open the example-zehncloud.com.conf file to edit.
sudo nano /etc/apache2/sites-available/example-zehncloud.com.conf
Step 2: To redirect all the traffic to https://www.example-zehncloud.com add the following code. This redirects not only the HTTP traffic to HTTPS but also the example-zehncloud.com traffic to ww.example-zehncloud.com with HTTPS.
RewriteEngine on RewriteCond %{HTTP_HOST} . RewriteCond %{HTTP_HOST} !^www. [NC] RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
The complete configuration file looks like:
ServerName example-zehncloud.com ServerAlias www.example-zehncloud.com DocumentRoot /var/www/html/example_zehncloudcom Redirect permanent / https://www.example-zehncloud.com/ # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. ServerAdmin webmaster@localhost ServerName example-zentech.com ServerAlias www.example-zehncloud.com DocumentRoot /var/www/html/example_zehncloudcom RewriteEngine on RewriteCond %{HTTP_HOST} . RewriteCond %{HTTP_HOST} !^www. [NC] RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] SSLEngine On # Available loglevels: trace8, ..., trace1, debug, info, notice, warn, # error, crit, alert, emerg. # It is also possible to configure the loglevel for particular # modules, e.g. #LogLevel info ssl:warn ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined # For most configuration files from conf-available/, which are # enabled or disabled at a global level, it is possible to # include a line for only one particular virtual host. For example the # following line enables the CGI configuration for this host only # after it has been globally disabled with "a2disconf". #Include conf-available/serve-cgi-bin.conf SSLCertificateFile </IfModule >SSLCertificateKeyFile SSLCACertificateFile