Question

Redirect domain.com to www.domain.com

  • Posted September 3, 2014

Hey. I’m trying to implement a permanent redirect from domain.com to www.domain.com.

This is how my .conf file looks like.

/etc/apache2/sites-available/domain.com.conf

<VirtualHost *:80 *:443>
        ServerName www.domain.com
        ServerAdmin william@domain.com

        DocumentRoot /var/www/domain.com/public_html

        ErrorLog /var/www/domain.com/logs/error.log
        CustomLog /var/www/domain.com/logs/access.log combined
</VirtualHost>

<VirtualHost *:80>
        ServerName domain.com
        Redirect permanent / http://www.domain.com
</VirtualHost>
<VirtualHost *:443>
        ServerName domain.com
        Redirect permanent / https://www.domain.com
</VirtualHost>

This doesn’t work. It works if I want to achieve the opposite (www.domain.com to domain.com) however - obviously after changing a few things.

Subscribe
Share

@asb I tried removing the symlinked 000-default.conf in sites-enabled/. Now it works as expected.

This seems really weird… doesn’t it “need” to be there to ensure a default behaviour?

My 000-default.conf file looks like this.

<VirtualHost *:80>
        ServerAdmin william@domain.com
        DocumentRoot /var/www/default/public_html

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

It sounds like you have overlapping things in 000-default.conf and domain.com.conf

@asb Visiting domain.com will use the 000-default.conf configuration. Visiting www.domain.com returns an “Unknown host” error, but that might be due to my DNS settings.

Still… visiting domain.com should not default to the 000-default.conf config, it should be resolved in domain.com.conf, right?

At first blush, that looks correct. When you say it doesn’t work do you mean it doesn’t redirect of it leads to an error?


Submit an answer
You can type!ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

You can set up an CNAME record through the DigitalOcean DNS panel. To add a CNAME record, first click on the domain that you’d like to edit

Once you’ve done that, click the Add Record button

From there, select the CNAME Record button and enter a name for the record. The CNAME records point to a site’s canonical name. When entering your CNAME record, enter what you need the record to look up in the Name field, and then add the record it resolves to in the Hostname field.

In Name: www In Hostname: @

and this will do the work

www.domain.com

You can set up an CNAME record through the DigitalOcean DNS panel. To add a CNAME record, first click on the domain that you’d like to edit

Once you’ve done that, click the Add Record button

From there, select the CNAME Record button and enter a name for the record. The CNAME records point to a site’s canonical name. When entering your CNAME record, enter what you need the record to look up in the Name field, and then add the record it resolves to in the Hostname field.

In Name: www In Hostname: @

and this will do the work

www.domain.com