htaccess force redirect when language not matches

12 Views Asked by At

I'm trying to redirect when user write a language which not match like example.com/mvc/fr or when write index instead of language like example.com/mvc/index.php
to example.com/mvc/en

Here is what I tried:

Options -MultiViews -Indexes

RewriteEngine On

RewriteBase /mvc/


RewriteCond %{HTTP_HOST} .*example.com [NC]

RewriteCond %{HTTP:Accept-Language} ^ar [NC]
RewriteRule ^$ https://%{HTTP_HOST}/mvc/ar/ [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^$ https://%{HTTP_HOST}/mvc/en/ [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ https://%{HTTP_HOST}/mvc/de/ [L,R=301]

RewriteCond %{REQUEST_URI} !^/(en|ar|de)/
RewriteRule ^ /mvc/ [L,R=301]


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l


RewriteRule ^(.+)/?$ index.php?lang=$1 [QSA,NC,L]

what is wrong in my code ?

0

There are 0 best solutions below