Documentation: Domain per Language plugin
Setting up your domains
The plugin decides which language belongs to which domain. But everything that makes a domain reach your site at all happens outside Joomla. Here is what to arrange, in the order that works best.
1. Point the domains at the same server
Every domain needs an A record that points at the server your Joomla site runs on. An A record is the setting in your DNS that says which server a domain belongs to. If your server also serves IPv6, add an AAAA record as well.
Nothing else. No forwarding and no parking page.
2. Add the domains to the same website
All the domains have to be served by the same Joomla installation. In your hosting panel that means one website entry, or one virtual host, with all the domains on it.
Add both the www and the non-www version of every domain. The plugin sends visitors from the version you did not configure to the one you did, but only if the request reaches Joomla in the first place.
3. Arrange the certificates
Every domain, and every www version, needs a valid TLS certificate. That is the certificate that gives you the padlock and the https:// in the address bar.
With Let's Encrypt you can use one certificate that lists all the names, or one certificate per domain. Both are fine. The domain health check warns you two weeks before a certificate runs out.
4. Set up the languages in Joomla
Domain per Language builds on Joomla's own multilingual setup. That setup has to be finished before a domain means anything:
- install the site language for every language (System > Install > Languages);
- publish a content language for every language (System > Content Languages);
- give every language its own menu with its own home page;
- turn on System - Language Filter, with Item Associations on;
- link your menu items and articles to each other across the languages. Joomla calls this associating. It is how the language switcher and the hreflang tags know which page belongs with which.
The Multilingual Status button at the top of your Joomla administrator tells you what is still missing.
5. Fill in the plugin
Add one row per language with its domain, save, and then have a look at your site itself. How the rows work is explained in Configuration.
Press Check domains afterwards. It tells you per domain whether the domain is found in DNS, whether it really reaches this site over https, whether the certificate is valid, whether http moves to https, and whether the www version redirects.
About the Site Domain field
Do you use the core System - SEF plugin with its Site Domain field filled in? Leave it as it is. Domain per Language fixes the canonical link that it makes, so every page keeps a canonical on its own language domain.
Moving a site that is already live
A site that was live with language codes keeps working. The old address with the code sends visitors on to the new one on its own domain, permanently, so search engines follow along by themselves.
Give the new domains some time to be crawled. And check in Search Console that every domain is added and verified as its own property.