За последние 24 часа нас посетили 18853 программиста и 1614 роботов. Сейчас ищут 654 программиста ...

Помогите с mod_rewrite для многоязычного сайта

Тема в разделе "Регулярные выражения", создана пользователем Oracool, 24 июн 2010.

  1. Oracool

    Oracool Активный пользователь

    С нами с:
    4 мар 2010
    Сообщения:
    29
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Есть сайт в котором был только английский язык. Теперь назрела необходимость добавить русский, немецкий и возможно в недалеком будущем французский. Русский подключил и работает это так: юзер заходит на сайт и ему выдается дефолтный язык английский ($_SESSION['lang']="en"). Тыкает на картинку с русским и переменная меняется на "ru", запрос отправляется в скрипт, который меняет язык и редиректит на вызванную страницу. После этого каждая страница выгребает из БД соответствующий выбранному языку контент. Ну короче всё гуд и так до конца сессии. Проблема в том что для ПС что русская страница, что английская всё одно и тоже. Это как понимаете очень-очень нехорошо!

    Что хочется сделать. Хочется чтобы скрипты оставались на своем месте, т.е. в корне, а обращение к ним шло вот так:
    www.domain.com/ru/ - для русской версии
    www.domain.com/en/ - для английской версии
    ну и т.д.

    Копаю в сторону mod_rewrite, но результатом всех моих потугов являются либо ошибки либо зацикливание...

    Ходил курить, перегружал комп, в бубен стучал - ничего не помогает :)

    Взываю к помощи великих гуру!
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ну у меня так:
    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !=/favicon.ico
    RewriteRule ^(.*)$ index.php?$1 [L,QSA]
    </IfModule>

    после чего все идет на индекс.пхп где уже через $_SERVER['REQUEST_URI'] направляется туда, куда надо.
    еще для роботов можно смотреть агента. Роботы ПС гордо заявляют о себе.