Помогите с htaccess

N0
На сайте с 12.11.2007
Offline
45
700

Доброго времени суток

нужно сделать мультиязычный сайт вида

domain.com/en

domain.com/fr

и т.д

переход по языкам работает но при добавлении других параметров (query) выдает ошибку

htaccess:

AddDefaultCharset utf-8
RewriteEngine On
RewriteBase /

AddType application/x-httpd-php .html .htm

RewriteRule ^(.*)\.html $1\.php

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^$ index.php [QSA]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/$ index.php [QSA]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([a-z][a-z])$ index.php?language=$1 [QSA]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([a-z][a-z])/$ index.php?language=$1 [QSA]



DirectoryIndex index.php

<Ifmodule autoindex>
IndexIgnore *
</Ifmodule>

и второй вопрос , что нужно добавить в htaccess выше, чтобы запрос вида

en.domain.com перенаправлялся на domain.com/en?

спасибо :)

Пластиковые окна Москва (http://vse-plastikovie-okna.ru) Стеклопакеты Москва (http://e-steklopaketi.ru)
siv1987
На сайте с 02.04.2009
Offline
427
#1
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/$ index.php [QSA]

Это не нужно, оно не сработает.

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([a-z][a-z])$ index.php?language=$1 [QSA]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^([a-z][a-z])/$ index.php?language=$1 [QSA]

ТС, регулярные выражения богаче и гибче чем вы думайте.

RewriteRule ^([a-z]{2})/?$ index.php?language=$1 [QSA]

В остальном не очень понятно, как из этих правилах должны работать чпу ссылки

N0
На сайте с 12.11.2007
Offline
45
#2

После замены ничего не поменялось

domain.com/en - работает

domain.com/en?search=somequery выдает как и прежде The requested URL /en was not found on this server.

siv1987
На сайте с 02.04.2009
Offline
427
#3

AddDefaultCharset utf-8

AddType application/x-httpd-php .html .htm

RewriteEngine On

RewriteBase /

RewriteRule ^(.*)\.html $1\.php [L]

RewriteCond %{QUERY_STRING} ^$

RewriteRule ^$ index.php [L]

RewriteRule ^([a-z]{2})/?$ index.php?language=$1 [QSA,L]

DirectoryIndex index.php

<Ifmodule autoindex>

IndexIgnore *

</Ifmodule>

N0
На сайте с 12.11.2007
Offline
45
#4

Спасибо ☝

а как сделать динамический субдомен?

en.domain.com ==> domain.com/indep.php?language=en ?

siv1987
На сайте с 02.04.2009
Offline
427
#5
nat000:
а как сделать динамический субдомен?

http://www.google.ru/search?hl=ru&newwindow=1&client=opera&hs=hJw&rls=ru&q=%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9+%D0%BF%D0%BE%D0%B4%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD+%D0%BD%D0%B0+%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B5&oq=%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9+%D0%BF%D0%BE%D0%B4%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD+%D0%BD%D0%B0+%D1%85%D0%BE%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B5

nat000:
en.domain.com ==> domain.com/indep.php?language=en ?

RewriteCond %{HTTP_HOST} ^(www\.)?([a-z]{2})\.site\.ru

RewriteRule (.*) index.php?language=%2 [QSA,L]

Вставить после RewriteBase /

Поддомены естественно должны смотреть в папке где обрабатывается этот htaccess

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий