• Our team is looking to connect with folks who use email services provided by Plesk, or a premium service. If you'd like to be part of the discovery process and share your experiences, we invite you to complete this short screening survey. If your responses match the persona we are looking for, you'll receive a link to schedule a call at your convenience. We look forward to hearing from you!
  • The BIND DNS server has already been deprecated and removed from Plesk for Windows.
    If a Plesk for Windows server is still using BIND, the upgrade to Plesk Obsidian 18.0.70 will be unavailable until the administrator switches the DNS server to Microsoft DNS. We strongly recommend transitioning to Microsoft DNS within the next 6 weeks, before the Plesk 18.0.70 release.
  • The Horde component is removed from Plesk Installer. We recommend switching to another webmail software supported in Plesk.

Issue Problem with vhost / redirect all Subdomains

daanse

Regular Pleskian
Hi,
i want every Domain on the Server i.e.:

autoconfig.<customerdomain>.de to be automatically apply to my Plesks Hostname httpdocs Folder.

Example Code which i played arround with.
Code:
<VirtualHost *:80> #Must be the first Virtual host
    ServerAdmin webmaster@hoster.com
    ServerName www
    DocumentRoot /var/www/html
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^autoconfig\. [NC]
    RewriteRule ^/(.*)    http://autoconfig.hoster.com/$1 [L,R=301,NE]
        #...
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot /var/www/html/autoconfig/
    ServerName autoconfig.hoster.com
    <Directory /var/www/autoconfig>
     Order allow,deny
    allow from all
    </Directory>
</VirtualHost>

where do i have to place this?
/etc/apache2/sites-enabled/ i already createt here a new conf but didn't took affect.
then i changed and added the Code into "@000-default.conf" but no changes.

Any advice how to not manually edit every customer Domain to get redirected to one URL?
 
Yea just for Thunderbird.
Everything else not working correct.
Theres an APP "AutoMX" which can be used, but still .... seems not easy.

I inserted Code to "/etc/apache2/sites-enabled/000-default.conf" and it seems to work.

Till need something better here
 
Hi ChrisH,

the equivalent folder "/etc/apache2" on Ubuntu/Debian - based - systems, is located at:
Code:
/etc/httpd/
on CentOS/RHEL - based systems.
 
This is an edited part of a working config.
It works for both Thunderbird and Outlook.

No existing configs needs to be edited, so Plesk is unable to mess with it.
Plesk will be totally unaware of it.
It merely adds an additional config file in /etc/nginx/conf.d/

Outlook is a bit more difficult as it is https, but I took that hurdle as well.
Because I have a wildcard (*.wolf.com) and it works with an SRV-record I can tell the autodiscovery process to look for a subdomain in my own domain wolf.com.
This (wolf.com) will also help nginx to pick the right config for the Microsoft autodiscovery.
This is easier for Thunderbird's autoconfig as it is a subdomain starting with "^autoconfig".

You only need the 1st CNAME if you are only doing Thunderbird's autoconfig.
But I would do the whole thing and also solve the certificate problem for your mail clients.

Each domain has a CNAME and an SRV-record in their own zone.
It needs a "helper CNAME" in the zone of the provider.

CNAME
autoconfig.client.com. IN CNAME mail.client.com.

SRV-Record
_autodiscover._tcp.client.com. IN SRV 0 1 443 client-com.wolf.com.

In the provider's zone you need a "helper" CNAME pointing to the correct server.
This will also be the hostname that will be used in your mail client.
It therefore also solves the "certificate problem" which we now have with our mail clients.

A domain with "client.com" will use the hostname "client-com.wolf.com" in their mail clients.

CNAME
client-com.wolf.com. IN CNAME mail.client.com.

I have a cronjob creating/removing those DNS-records.
I don't think I'm going to share those as they are quite specific to my environment.
It would work to add these domains manually and/or put them in a DNS-template.

The 2 PHP-scripts that provide the xml's for Thunderbird & Outlook will make that translation automatically based on the hostname that's connecting.

I was very proud after creating this system solving both the certificate problem and the autodiscovery.

cat /etc/nginx/conf.d/zz095_autodiscover.conf
Code:
server {
    listen 1.2.3.4:80;
    server_name ~^autoconfig\.[a-z0-9-]+\.[a-z0-9-]+$;

    root  /var/www/autoconfig_autodiscover;

    index index.html;
    error_log /var/log/nginx/autoconfig_autodiscover/error.log;
    access_log /var/log/nginx/autoconfig_autodiscover/access.log combined;

    location ~* /mail/config-v1.1.xml {
      try_files $uri /config-v1.1.xml.php?$args;
      rewrite ^(.+)$ /config-v1.1.xml.php?$1 last;
    }

   location ~ /config-v1\.1\.xml\.php$ {
     try_files $uri =404;
     include /etc/nginx/fastcgi_params;
     fastcgi_pass 127.0.0.1:9000;
     fastcgi_index index.php;
     fastcgi_param SERVER_FQDN  $host;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param PATH_INFO $fastcgi_script_name;
     fastcgi_intercept_errors on;
   }
}


server {
    listen 1.2.3.4:443 ssl http2;
    server_name ~^[a-z0-9-]+[a-z0-9]-[a-z0-9]+\.wolf.com$;
    root  /var/www/autoconfig_autodiscover;

    error_log /var/log/nginx/autoconfig_autodiscover/error.log;
    access_log /var/log/nginx/autoconfig_autodiscover/access.log combined;

    ssl_certificate             /root/.ssh/wildcard.wolf.com.pem;
    ssl_certificate_key         /root/.ssh/wildcard.wolf.com.key;

    ssl_stapling on;
    ssl_stapling_verify on;

    add_header          Strict-Transport-Security       "max-age=15768000; preload" always;
    add_header          Referrer-Policy                 strict-origin-when-cross-origin always;
    add_header          X-Frame-Options                 SAMEORIGIN always;
    add_header          X-XSS-Protection                "1; mode=block" always;
    add_header          X-Content-Type-Options          nosniff always;

    ssl_dhparam         /etc/dhparam/dhparam4096.pem;
    ssl_session_timeout 5m;

    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers         HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    client_max_body_size 1m;

    index index.php index.html index.htm;

    location ~* /autodiscover/autodiscover.xml {
      try_files $uri /autodiscover.xml.php?$args;
      rewrite ^(.+)$ /autodiscover.xml.php?$1 last;
    }

   location ~ /autodiscover\.xml\.php$ {
     try_files $uri =404;
     include /etc/nginx/fastcgi_params;
     fastcgi_pass 127.0.0.1:9000;
     fastcgi_index index.php;
     fastcgi_param SERVER_FQDN  $host;
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
     fastcgi_param PATH_INFO $fastcgi_script_name;
     fastcgi_intercept_errors on;
    }
}
 
Last edited:
Back
Top