За последние 24 часа нас посетили 17513 программистов и 1713 роботов. Сейчас ищут 1684 программиста ...

Перевод сайта на мультиязычность через .htaccess

Тема в разделе "Настройка веб-сервера", создана пользователем Frai, 16 дек 2017.

  1. Frai

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

    С нами с:
    21 июл 2015
    Сообщения:
    102
    Симпатии:
    0
    Приветствую, знатоки! Обращаюсь по делу, так как попробовал несколько вариантов (несколько слабо сказано) и решил обратится к коллективному разуму форума, а конкретно к спецам по настройке htaccess)
    Итак.
    Было
    site.ru/page1.php
    site.ru/page2.php
    ...

    Хочется оставить страницы на русском и отображать по прежнему,
    но все имеющие дополнение в урл (например en|de|fr) направлять по этому типу, то есть отображать с языком (например /en/) , а направлять на прежнюю страницу с параметром.

    site.ru/([a-z]{2}/ -> site.ru/index.php?lang=$1
    site.ru/([a-z]{2}/pageX.php$ -> site.ru/pageX.php?lang=$1 (pageX - произвольные названия страниц)
    site.ru/([a-z]{2}/pageX.php?(.*)$ -> site.ru/pageX.php?$2&lang=$1 ($2 - разные параметры, например get=1 &test=0...)

    На данный момент тестирую в Денвере такой код
    PHP:
    1. RewriteEngine On
    2. RewriteCond %{HTTP_HOST} ^www.site.ru
    3. RewriteRule (.*) https://site.ru/$1 [R=301,L]
    4. RewriteCond %{HTTP_HOST} ^site.ru
    5. RewriteRule (.*) https://site.ru/$1 [R=301,L]
    6.  
    7. RewriteEngine On
    8. RewriteRule ^/([a-z]{2})/$ /?language=$1 [L,QSA]
    9. RewriteRule ^/([a-z]{2})/([A-Za-z0-9-_]+)\.php$ /$2.php\?language=$1 [L,QSA]
    10. RewriteRule ^/([a-z]{2})/([A-Za-z0-9-_]+)\.php(.*)$ /$2.php$3\&language=$1 [L,QSA]
    В логах почему -то упрямо отдается так

    [Sat Dec 16 16:33:09 2017] [error] [client 127.0.0.1] File does not exist: D:/home/site.ru/www/en

    Соответственно перенаправляет на 404 страницу
     
    #1 Frai, 16 дек 2017
    Последнее редактирование: 16 дек 2017
  2. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Первый совет: снеси нафиг денвер и поставь что-то свежее.
    Второй совет: включи отладку рерайтера и посмотри как красиво разрешается твой запрос.
    Третий совет: если есть возможность НЕ использовать рерайтер для редиректа с вэвэвэ на не-вэвэвэ - используй её.
    Четвёртый совет: если есть возможность НЕ использовать рерайтер для редиректа несекура на секур - используй её.