Mam wielojęzyczną stronę z wordpress i chcę przekierować stronę danego regionu do danego języka,
xyz.de --> xyz.de/de/
xyz.co.uk --> xyz.co.uk/en/
bezpośredni dostęp do xyz.de/de
i xyz.co.uk/en
działają poprawnie. Więc nie ma problemu po stronie wordpress.
Teraz próbuję zmienić plik htaccess xyz.de
i xyz.co.uk
aby przekierować stronę.
Biorąc pod uwagę xyz.co.uk
Chcę dodać RewriteCond tak, że ilekroć nie ma /en
później po xyz.co.uk
automatycznie doda /en
.
Na przykład xyz.co.uk/<trailing address>
prowadzi do xyz.co.uk/en/<trailing address>
Do tej pory mam następujący kod, który jakoś nie działa,
RewriteCond %{REQUEST_URI} !^/en
RewriteRule ^(.*)$ http://xyz.co.uk/en/$1 [L]
Negacja /en
nie działa! Próbowałem też
RewriteCond %{REQUEST_URI} !/en
RewriteRule ^(.*)$ http://xyz.co.uk/en/$1 [L]
Czy ktoś może mi powiedzieć, dokąd zmierza? wygląda na to, że popełniłem błąd, pisząc RegEx i sugerując, czy jest lepszy sposób na osiągnięcie tego samego, co nie ma wpływu na SEO w różnych domenach.
Odpowiedzi:
1 dla odpowiedzi № 1Posługiwać się THE_REQUEST
zmienna zamiast REQUEST_URI
:
RewriteCond %{HTTP_HOST} .co.uk$ [NC]
RewriteCond %{THE_REQUEST} !/en/ [NC]
RewriteRule ^ /en%{REQUEST_URI} [L,R=302,NE]
- Zachowaj tę zasadę jako pierwszą regułę w .htaccess.
- Zmień na
R=301
po przetestowaniu.