RewriteCond %{HTTP_HOST} ^example\.de$ [NC]
RewriteRule ^(.*)$ https://example.com/de/ [R=301,L]
Poté, co zachytil URL-path v RewriteRule
vzor, chybí odpovídající backreference v substituční řetězec, takže to bude přesměrovat všechno na domovskou stránku, tj. example.de/<url>
k example.com/de/
- <url>
je ztracena.
Nicméně, můžete zvládnout i Tld s jediným pravidlem. Od TLD je stejný jako podadresář.
Předpokládám, že všechny tři domény vyřešit na stejné místo.
Zkuste následující místo v kořenovém adresáři .htaccess
soubor:
RewriteCond %{HTTP_HOST} ^example\.(de|it) [NC]
RewriteRule (.*) https://example.com/%1/$1 [R=301,L]
Na %1
backreference se týká zachytil TLD z předchozího CondPattern. A $1
backreference obsahuje URL-cestu zachytil v RewriteRule
vzor.
Na RewriteBase
směrnice je zde není nutné.
Test s 302 (dočasné) přesměrovat, aby se zabránilo ukládání do mezipaměti problémy. Budete muset vymazat cache vašeho prohlížeče, před testováním, neboť chybné 301 (permanentní) přesměrování bude muset být do mezipaměti.
UPDATE#1: Toto je Polylang plugin pro Wordpress.
V takovém případě, tento redirect směrnice musí jít na samém vrcholu své .htaccess
soubor, než jakékoli existující WordPress směrnic, včetně před # BEGIN WordPress
komentář značku.
UPDATE#2: mám taky .cz
domény a podsložky /cs
(ISO standard)
Od TLD a podadresáře jsou odlišné, budete muset přidat další pravidlo, aby to zvládl. (To může jít před nebo po výše uvedené pravidlo, protože není tam žádný konflikt.)
Například:
RewriteCond %{HTTP_HOST} ^example\.cz [NC]
RewriteRule (.*) https://example.com/cs/$1 [R=301,L]