2015-04-15 4 views
4

Здравствуйте, у меня есть сайт, который должен быть доступен на нескольких языках. Я сделал это с помощью Wordpress. Я пытаюсь добиться того, что каждый язык получает свой (виртуальный) субдомен. Так, например, fr.foo.eu и nl.foo.eu.htaccess переместить часть URL

На данный момент у меня есть URL-адрес в следующем формате: foo.eu/?lang=nl foo.eu/?lang=fr

Вполне возможно, что есть еще содержание в URL для пример: http://hypnose.eu/hallo-wereld/?lang=nl

И я хотел бы, чтобы мои URLs следующим образом, используя HTAccess:

http://nl.hypnose.eu/hallo-wereld/ 

Не могли бы вы, ребята, помочь мне достичь этого.

Вот что я до сих пор в моей .htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} !^([a-z]{2}\.hypnose\.eu$ [NC] 
RewriteCond %{THE_REQUEST} \ /+([^\?]*)\?lang=([a-z]{2})&?([^\ ]*) 
RewriteRule^http://%2.hypnose.eu/%1?%3 [L,R] 

RewriteCond %{QUERY_STRING} !(^|&)lang= 
RewriteCond %{HTTP_HOST} ^([a-z]{2})\.hypnose\.eu$ [NC] 
RewriteRule ^(.*)$ /$1?lang=%2 [L,QSA] 

RewriteRule ^index\.php$ - [L] 

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

RewriteRule . /index.php [L] 
</IfModule> 
+1

Не могли бы вы изменить свой вопрос и добавить '.htaccess', который у вас есть до сих пор? Это было бы здорово, поэтому мы могли бы оказать некоторую помощь. Благодаря! –

+0

@milz Да, конечно, я добавил его сейчас – Jantje

ответ

3

Попробуйте добавить, выше ваших правил WordPress:

RewriteCond %{HTTP_HOST} !^([a-z]{2})\.foo\.eu$ [NC] 
RewriteCond %{THE_REQUEST} \ /+([^\?]*)\?lang=([a-z]{2})&?([^\ ]*) 
RewriteRule^http://%2.foo.eu/%1?%3 [L,R] 

RewriteCond %{QUERY_STRING} !(^|&)lang= 
RewriteCond %{HTTP_HOST} ^([a-z]{2})\.foo\.eu$ [NC] 
RewriteRule ^(.*)$ /$1?lang=%1 [L,QSA] 
+0

Спасибо за ваш ответ. Но, похоже, это не работает, URL по-прежнему остается неизменным. Я добавил строки, которые вы мне дали после RewriteBase /. И я удалил правило: RewriteRule ^/nl /. Любая другая идея, что я делаю неправильно? – Jantje

+0

@Jantje, какой URL-адрес вы вводите и что вы ожидаете. Когда вы «** переписываете **», тогда вы вводите URL-адрес, например: «http: // nl.hypnose.eu/hallo-wereld /» в адресную строку браузера, а правила «переписывают» его:/алло-Wereld /? = nl' языки. –

+0

Например, я хочу: http://foo.eu/hallo-wereld/?lang=fr показать в адресной строке как http://fr.foo.eu/hallo-wereld/. Но он должен показать содержание http://foo.eu/hallo-wereld/?lang=fr. Может быть, я был недостаточно ясен, извините за это – Jantje

0

Есть популярные слова пресс плагин для многоязычных который дает настройки для URL-адрес для текущего языка

1) qTranslate X

2) qTransla te

Попробуйте предустановленный режим в плагине.

+0

Танк, я знаю, что у меня есть qTranslate X, но я получаю ту же проблему, когда я использую функцию предварительного домена. Наступает внутренняя ошибка сервера 500. – Jantje

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