I wanted to redirect web site to https. Normally, it you just have to create an .htaccess file with following content.
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
In this case, i wanted to do it with out .htaccess, mainly because we use git for development and deploy, so don’t want to mess up with .htaccess on development machines. I could create a different .htaccess file for development, but it will be better handle through Apache VirtualHost entry.
Cpanel do not recommend editing httpd.conf, instead site specific changes go to its own file or these changes can be lost when cpanel update/rebuild httpd.conf etc..
First check VirtualHost entry for your domain in httpd.conf, you will find something like
# To customize this VirtualHost use an include file at the following location # Include "/usr/local/apache/conf/userdata/std/2_4/hoston/hostonnet.com/*.conf"
You have to un comment the Include line as follows
# To customize this VirtualHost use an include file at the following location Include "/usr/local/apache/conf/userdata/std/2_4/hoston/hostonnet.com/*.conf"
By default, this folder is not present, so lets create it
mkdir -p /usr/local/apache/conf/userdata/std/2_4/hoston/hostonnet.com/
You have to put your VirtualHost modifications on this folder, you can use any file name, but extension of the file must be .conf
Lets create file ssl.conf in the folder
vi /usr/local/apache/conf/userdata/std/2_4/hoston/hostonnet.com/ssl.conf
Add following content to the file.
RewriteCond %{HTTPS} off RewriteRule (.*) https://www.hostonnet.com%{REQUEST_URI}
You should replace hostonnet.com with your own domain name.
Lets make edits to httpd.conf permanent by running
/usr/local/cpanel/bin/apache_conf_distiller --update
Restart Apache Webserver
service httpd restart
Now sites will redirect to SSL page, verify it with curl
boby@fwhlin:~ $ curl -I http://hostonnet.com/ HTTP/1.1 302 Found Date: Thu, 01 Oct 2015 02:56:55 GMT Server: Apache Location: https://www.hostonnet.com/ Connection: close Content-Type: text/html; charset=iso-8859-1 boby@fwhlin:~ $