Sujay Kundu

Sujay Kundu

Sujay Kundu is a Certified Web developer and Digital Marketing Expert. He is currently working as Nodejs Developer at Katerra. Know more about him..

Apache2 Vhost File Config Settings

Posted on August 18, 2019

For non-ssl:

$ nano /etc/apache2/sitesavailable/yourdomain.com.conf

         <VirtualHost *:80>
    # The ServerName directive sets the request scheme, hostname and port t$
    # 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.

           ServerAlias www.yourdomain.com
             ServerAdmin admin@yourdomain.com
            DocumentRoot /var/www/yourdomain.com/public_html

            # 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

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

    </VirtualHost>

    # vim: syntax=apache ts=4 sw=4 sts=4 sr noet

For SSL :

$ nano /etc/apache2/sites-available/yourdomain.com-le-ssl.conf
<IfModule mod_ssl.c>
   <VirtualHost *:443>
           # The ServerName directive sets the request scheme, hostname and port t$
           # 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.

   	ServerName thegeekstore.net
           ServerAlias www.yourdomain.com
           ServerAdmin admin@yourdomain.com
           DocumentRoot /var/www/yourdomain.com/public_html

           # 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

    RewriteEngine on
   # RewriteCond %{SERVER_NAME} =yourdomain.com [OR]
   # RewriteCond %{SERVER_NAME} =www.yourdomain.com
   # RewriteRule ^ http://%{SERVER_NAME}%{REQUEST_URL} [END,NE,R=permanent]
   Include /etc/letsencrypt/options-ssl-apache.conf
   SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pem
   </VirtualHost>
   </IfModule>