When adding subdomain it's redirecting back to main domain / Ubuntu 16.04 / Apache

December 9, 2016 17.3k views
DNS Apache Ubuntu 16.04

Having problem with my subdomain. Did everything by tutorial and now my subdomain is redirected to main domain. I do not have much experience with this kind of stuff so help would be appreciated. And main domain has SSL so maybe that’s the problem or my hover settings for subdomain are wrong?


<VirtualHost *:80>
    ServerAdmin admin@demo.domain.com
    ServerName demo.domain.com
    ServerAlias www.demo.domain.com
    DocumentRoot /var/www/demo.domain.com/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined


myIPadress demo.domain.com

Hover domain

@ A myIPadress  

*  A myIPadress     

mail  CNAME mail.hover.com.cust.hostedemail.com 

@ MX 10 mx.hover.com.cust.hostedemail.com   

www CNAME   domain.com  

www CNAME   demo.domain.com
4 Answers

So finally got it right. Now it’s working.


www CNAME demo.domain.com 


demo.domain.com.  A myIPaddress

And added .htaccess in directory

RewriteEngine on

# redirect to https www
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)(domain\.com)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]

# redirect to http subdomain
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^((?!www).+\.demo.domain\.com)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,L]

Did you enabled your VirtualHost? As I see, you created new file for subdomain VH, if you did it - you need to enable it using a2ensite:

  • sudo a2ensite demo.domain.com

Make sure to restart after any change you do to the config:

  • sudo systemctl restart apache2

Try to access subdomain again. If you still see wrong page, try clearing cache or going to Incognito mode.

  • Sorry forgot to add that, yes it’s enabled by sudo a2ensite demo.domain.com

    • Try to go on with NameVirtualHost. This is link from Apache docs, it very well explained and there are few examples.

      You can also look for logs at /var/log/apache2/error.log and /var/log/apache2/access.log. If you find any strange entries for subdomain, especially in error.log, it could give you mor insight on problem (or post it, we can probably help).

      • There is no error in error.log, read all and tried it nothing changed. I’m guessing that it might be problem with SSL? Is it possible that in place of 80 should be 443 port? Losing my mind here, tried everything that I could find and result is always the same.

Anybody? Need this resolved but have no idea what to try next. Tried everything that I could find… What am I missing?

The following steps worked for me.
1: add virtual host like the following with chmod 664 and chown www-data:www-data

<VirtualHost *:80>
        ServerAdmin youemail@sth.com
        DocumentRoot /var/www/subdomain
        ServerName subdomain.hashmatwaziri.com
        ServerAlias www.subdomain.hashmatwaziri.com
        <Directory /var/www/subdomain/>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        <IfModule mod_dir.c>
            DirectoryIndex index.php index.pl index.cgi index.html index.xhtml index.htm

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

2: sudo add-apt-repository ppa:certbot/certbot (add the repository)
3: sudo apt install python-certbot-apache (Install Certbot’s Apache package with apt)

4: type “certbot
5: select the newly created virtual host
6: and you are all good to go. cheers

Have another answer? Share your knowledge.