Tengo un sitio web de wordpress multilingüe y quiero redirigir el sitio web de una región determinada a un idioma determinado.
xyz.de --> xyz.de/de/
xyz.co.uk --> xyz.co.uk/en/
acceso directo a xyz.de/de
y xyz.co.uk/en
están funcionando correctamente. Así que no hay problema en el lado de wordpress.
Ahora, estoy tratando de cambiar el archivo htaccess de xyz.de
y xyz.co.uk
Para que redirijan el sitio web.
Teniendo en cuenta xyz.co.uk
Quiero agregar un RewriteCond tal que siempre que no haya /en
después de xyz.co.uk
se agregará automáticamente /en
.
Por ejemplo xyz.co.uk/<trailing address>
resultados en xyz.co.uk/en/<trailing address>
Hasta ahora tengo el siguiente código, que de alguna manera no parece funcionar,
RewriteCond %{REQUEST_URI} !^/en
RewriteRule ^(.*)$ http://xyz.co.uk/en/$1 [L]
La negacion de /en
¡no está trabajando! También he intentado
RewriteCond %{REQUEST_URI} !/en
RewriteRule ^(.*)$ http://xyz.co.uk/en/$1 [L]
¿Podría alguien decirme a dónde me voy mal? Parece que me he equivocado al escribir RegEx y sugerir que si hay una mejor manera de lograr lo mismo, eso no afecta el SEO en diferentes dominios.
Respuestas
1 para la respuesta № 1Utilizar THE_REQUEST
variable en lugar de REQUEST_URI
:
RewriteCond %{HTTP_HOST} .co.uk$ [NC]
RewriteCond %{THE_REQUEST} !/en/ [NC]
RewriteRule ^ /en%{REQUEST_URI} [L,R=302,NE]
- Asegúrese de mantener esta regla como su primera regla en .htaccess.
- Cambiarlo a
R=301
una vez que hayas probado.