2015-06-17 3 views
1

мне нужно работать с виртуальной URL для обработки языка с папки или подпапки, как.htaccess для обнаружения языка

www.example.com/en/xxx/ 
OR www.example.com/xxx/en 
OR www.example.com/xxx/xxx/en 

И все дают один и тот же ?lang=en

Его можно?

Спасибо Вам

Я испытал это на subdomaine

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

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

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

# language 
RewriteCond %{HTTP_HOST} !^(www.)?example.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(.+).example.com$ 
RewriteRule ^(.*)$ $1?ln=%1 [QSA,L] 

RewriteCond %{HTTP_HOST} ^(.+).example.com/$ 
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] 

С PHP его работы

$url = explode('/', $_GET['a']); 
if(in_array('fr', $url)) { 
$language = 'fr'; 
} 
elseif(in_array('it', $url)) { 
$language = 'it'; 
} 
else { 
$language = 'en'; 
} 
+0

Что вы пробовали? Я предполагаю, что часть решения зависит от того, как вы направляете свои запросы. – Crackertastic

+0

Я редактирую свой пост, но его работа для субдомена – Mozinor

+0

Какая часть не работает в вашем .htaccess? –

ответ

3

Ну для этого конкретного примера.

example.com/xxx/en мне нужно index.php? Ланг = еп & а = ххх

Вы можете использовать правило, как это.

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/en/?$ /index.php?lang=en&a=$1 [L,QSA] 
+0

Спасибо! То, что мне нужно – Mozinor

Смежные вопросы