subdomain accessible with www

Problem

subdomain & www in Plesk

Solution

Follow the 4 steps to make your subdomain accessible with www .

step 1: update vhosts.conf

Add one line to the special configuration file for the subdomain. Normally this file is located in /srv/vhosts/domain/subdomains/subdomain/vhosts.conf .

Create the file, if there is no file yet. Add the following line, save it and exit the editor.
ServerAlias www.subdomain.domain.com

What does ServerAlias www.subdomain.domain.com mean?
This is a Apache configuation that says that Apache will also serve the subdomain if you access it with www. This is normally used for the domain name, but also working for sub-domains.

step 2: update dns settings (optionally)

(optional – maybe necessary in Plesk 7/7.5, but works without in Plesk 8)

  1. Add a record type in the DNS zone of the domain for the subdomain starting with www. Select the following menu entries:
    Server => Domains => domain.com => DNS
  2. There you’ll see a list of DNS entries for the domain. Check the IP address for the subdomain entry – copy to clipboard or write it down, if you don’t know it.
  3. Now you create a new entry with the button Add new entry – use the following values:
    • Record type: A
    • Domain name: www.subdomain (Plesk 8)
    • IP address: enter the IP address that you copied in step 2.2, e.g. 111.111.111.111

    Press OK to add the new entry to the DNS.

  4. Check if there is a new entry wit the following value:
    www.subdomain.domain.com A 111.1111.111.111

step 3: update plesk config file

Recreate the Plesk / Apache configuration for the whole domain with this command:
/usr/local/psa/admin/sbin/websrvmng -u --vhost-name=domain.com

step 4: restart apache

Restart Apache to read the new configuration and serve pages with www.subdomain.domain.com

apache2ctl restart

Subdomain working as catch-all

In this article you’ll learn to configure Plesk that it uses one subdomain as catch-all for all non-existing subdomains.

Why you would need catch all subdomains

Maybe you have a few subdomains. But sometimes your visitors are accessing non-existing subdomains. So the best solution would be to either redirect them to your main website or at least show them a list of available pages.
Here comes the catch-all subdomain : There you can either configure Apache that it redirects all accesses to the main webpage (via 301, as written e.g. in this article Migrate domain names with .htaccess ) or just have a static (or dynamic, of course) page displayed to the user.

Step-by-step configuration

  1. Create a subdomain z-WILDCARD in Plesk – of course in the admin section of the right domain.
    Why do we need this name? ’cause this entry should be the last entry in the list of subdomains, otherwise this “trick” will not work. So if you have a domain as e.g. zabalula , than you should maybe name the subdomain zzzz-WILDCARD or similar.
  2. Add special configuration (catchall for all subdomains) to the vhosts.conf file of this subdomain.
    Normally it’s located in /srv/www/vhosts/domain.com/subdomains/z-WILDCARD/conf/vhosts.conf. You have to create it – normally you need the root user to do this. Copy the following content into the file:
    ServerAlias *.domain.com
  3. Apply the new configuration – recreate the Apache configuration. You have to run the tool websrvmng which is a Plesk tool that manages and creates the webserver configuration. Execute the following as root user.
    /usr/local/psa/admin/sbin/websrvmng -u --vhost-name=domain.com
  4. Finally – restart Apache to load the new configuration, also as root.
    apache2ctl restart

That’s it – now you can try accessing non-existing subdomains as e.g. doesnotexists.domain.com and you should see the Plesk page displayed for new pages. Next step would be to e.g. add the 301 redirect or use a custom page.

Note: This has been tested with Plesk 8 and Suse Linux. Please leave a comment if this also works on other version of Plesk / linux – or something did not work.