# Any random subdomain redirects to www

**URL:** https://meta.discourse.org/t/www/400584
**Category:** Sysadmins
**Created:** [April 14, 2026, 6:58am UTC](https://meta.discourse.org/t/www/400584 "2026-04-14T06:58:50Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![Lxk520](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/lxk520/32/550353_2.png) [@Lxk520](https://meta.discourse.org/u/Lxk520)
#### Post date: [April 14, 2026, 6:58am UTC](https://meta.discourse.org/t/www/400584/1 "2026-04-14T06:58:50Z")

</div>

**Redirect Random Subdomains to www**

1. Obtain an Alibaba Cloud AccessKey (using Alibaba Cloud as an example; apply for your own key).

```plaintext
AccessKey ID: LTAI5tQCfDcVcghn5
AccessKey Secret: J8ZayXB44MIWa1Mfnj

```

1. Install acme.sh

```plaintext
cd ~
curl https://get.acme.sh | sh

```

1. Switch the default CA to Let’s Encrypt, then reissue the certificate:

```plaintext
# Switch default CA to Let's Encrypt
~/.acme.sh/acme.sh --set-default-ca --server letsencrypt
# Issue a wildcard certificate (replace discourse.cc with your domain)
~/.acme.sh/acme.sh --issue --dns dns_ali -d discourse.cc -d '*.discourse.cc'

```

1. Install the certificate into Discourse’s SSL directory.  
Copy the certificate to Discourse’s SSL directory

Execute as root (replace discourse.cc with your domain):

```plaintext
cp /home/admin/.acme.sh/discourse.cc_ecc/discourse.cc.key /var/discourse/shared/standalone/ssl/discourse.cc.key
cp /home/admin/.acme.sh/discourse.cc_ecc/fullchain.cer /var/discourse/shared/standalone/ssl/discourse.cc.cer
chmod 644 /var/discourse/shared/standalone/ssl/discourse.cc.*

```

Verify that the files exist:

```plaintext
ls -l /var/discourse/shared/standalone/ssl/

```

You should see `discourse.cc.cer` and `discourse.cc.key`.

1. Modify the Discourse configuration and rebuild.

```plaintext
DISCOURSE_HOSTNAME: 'www.discourse.cc'
DISCOURSE_HOSTNAME_ALIASES: 'discourse.cc'
DISCOURSE_DISABLE_LETSENCRYPT: 'true'

```

1. Configure Nginx redirect rules (if not already configured).

```plaintext
server {
    listen 80;
    server_name ~^(?!www\.)(.+)\.discourse\.cc$;
    return 301 https://www.discourse.cc$request_uri;
}
server {
    listen 443 ssl;
    server_name ~^(?!www\.)(.+)\.discourse\.cc$;
    ssl_certificate ...;
    ssl_certificate_key ...;
    return 301 https://www.discourse.cc$request_uri;
}

```

1. Rebuild the container.

```plaintext
cd /var/discourse
sudo ./launcher rebuild app

```

---

_[View the full topic](https://meta.discourse.org/t/www/400584)._
