Redirect custom domains to the Apache server
When redirecting custom domains to the Apache server, there are two steps to be performed:
- Create a virtual host for each domain (with certificates, if required)
- Add redirection rules to the Apache server configuration
Create a virtual host for each domain
To create a virtual host:
-
Add a ServerAlias in the /opt/bitnami/apache/conf/vhosts/APPNAME-vhost.conf file for your application. This option is designed to specify alternate names for a host and is used when matching requests. Here’s an example:
<VirtualHost *:80> ServerName app.example.com ServerAlias www.app.example.com app.example.org www.app.example.uk.org ...
-
Add a ServerAlias in the /opt/bitnami/apache/conf/vhosts/APPNAME-https-vhost.conf file for your application. This option is designed to specify alternate names for a host and is used when matching requests. Here’s an example:
<VirtualHost *:443> ServerName app.example.com ServerAlias www.app.example.com app.example.org www.app.example.uk.org ...
You will also need to create new certificates for each virtual host running on port 443 or use existing certificates, such as the default certificates shipped with the stack. You have two options:
-
Option A: Update the SSLCertificateFile and SSLCertificateKeyFile directives for the virtual host to reflect the correct path for each virtual host’s certificates:
… SSLCertificateFile “/opt/bitnami/apache/conf/bitnami/certs/app.example.com.crt” SSLCertificateKeyFile “/opt/bitnami/apache/conf/bitnami/certs/app.example.com.key” …
-
Option B: Create symlinks to the default certificates.
-
-
After modifying the Apache configuration files, restart Apache to apply the changes:
$ sudo /opt/bitnami/ctlscript.sh restart apache
Add redirection rules
The next step is to add the necessary redirection rules for each domain. The sections below cover two common scenarios.
Redirect www.myapp.example.com to myapp.example.com
This redirection is an SEO “best practice”.
-
Add the following rules in the /opt/bitnami/apache/conf/vhosts/APPNAME-vhost.conf file, within the VirtualHost block for your domain:
<VirtualHost *:80> RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ http://%1$1 [R=permanent,L] ...
-
Add the following rules in the /opt/bitnami/apache/conf/vhosts/APPNAME-https-vhost.conf file, within the VirtualHost block for your domain:
<VirtualHost *:443> RewriteEngine On RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1$1 [R=permanent,L] ...
-
After modifying the Apache configuration files, restart Apache to apply the changes:
$ sudo /opt/bitnami/ctlscript.sh restart apache
NOTE: Many browsers perform SSL verification of HTTPS endpoints before executing any redirection. This means that if you plan to redirect HTTPS requests to a non-HTTPS endpoint, you must ensure that your SSL certificate includes an entry for the HTTPS endpoint requested in the first instance.
Redirect myapp.example.com to www.myapp.example.com
-
Add the following in the /opt/bitnami/apache/apps/APPNAME/conf/httpd-vhosts.conf file in the VirtualHost block for your domain. Or, to apply this redirection by default for all domains, add it to the default VirtualHost block in the /opt/bitnami/apache/conf/bitnami.conf file.
<VirtualHost *:80> RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] ... <VirtualHost *:443> RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] ...
-
After modifying the Apache configuration files, restart Apache to apply the changes.