Skip to main content

Documentation: Domain per Language plugin

Troubleshooting

Nothing happens at all

Check these four, in this order: the plugin is on, at least one domain row is filled in and saved, Search Engine Friendly URLs are on, and the System - Language Filter plugin is on. The settings screen warns you about the last two.

Then check that the domain you are testing is exactly the domain you filled in, with or without www. Setting up your domains lists everything that has to be arranged outside Joomla.

The language code is still in the address

The code only disappears for the language that owns that domain. On the English domain, /en/ goes away and /de/ stays, because German lives on the default domain or on its own one.

Does a code stay that you expected to disappear? Then the row for that language is missing, or it points at another domain.

I end up in a redirect loop

Almost always there is a second redirect outside Joomla fighting this one. A server rule that forces www while the plugin is set up without it, or the other way round. Make the server rule and the domain row agree with each other.

Browsers remember permanent redirects, so always test in a private window after you change something.

A visitor sees the wrong language on a domain

That is exactly what this plugin prevents. On a domain you configured, the language comes from the domain, not from a cookie or the browser.

If it still happens, another plugin is changing the order in the router. Switch off your other system plugins one by one to find out which one.

I see /_dpl/ in an address

That is the internal marker for a link to another domain. In pages, feeds and JSON it is replaced automatically, and a marker address that gets opened anyway redirects to the right domain. So nothing is broken.

Do you see it in output your own code made? Then resolve it with Domainperlanguage::resolveUrl(). See the article about links in other extensions.

robots.txt shows the Joomla default

There is a robots.txt file in the main folder of your site, and your web server hands that file over itself. Rename it or delete it. The plugin warns you about it on its settings screen.

Is there no such file? Then check that your server sends unknown addresses to index.php. The two conditions are in A robots.txt per domain.

The language suggestion never shows up

Walk through these: the setting is on; the page is linked to a page in the other language; Add Alternate Meta Tags is on in the language filter; your browser really asks for that other language first; and you did not close the bar earlier, which is remembered for 30 days in a cookie on that domain.

Test in a private window with your browser language changed. The full list of conditions is in Language suggestion.

Staying logged in does not work

Check that the setting is on, that both domains are in your list, and that the visitor is logged in on the front end. The administrator is never included.

Logging out everywhere needs sessions in the database with session metadata on. The health check tells you whether that is the case. A user with two-factor authentication is asked for the second factor again on the other domain, and that is on purpose.

The health check says a domain is not reachable from the server

Some hosting setups cannot reach their own public address. Open the link in the message in your own browser: a 64-character code means the domain does reach this site and only the server cannot see it. Your visitors notice nothing.

Ask your hosting company about hairpin NAT or split DNS if you want the check to go green.

Still stuck

Run the domain health check and keep the result at hand. It names the domain, the check that failed and the reason in one line, which is usually enough to see where the problem sits: DNS, certificate, web server or Joomla.