Приветствую, знатоки! Обращаюсь по делу, так как попробовал несколько вариантов (несколько слабо сказано) и решил обратится к коллективному разуму форума, а конкретно к спецам по настройке 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: RewriteEngine On RewriteCond %{HTTP_HOST} ^www.site.ru RewriteRule (.*) https://site.ru/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^site.ru RewriteRule (.*) https://site.ru/$1 [R=301,L] RewriteEngine On RewriteRule ^/([a-z]{2})/$ /?language=$1 [L,QSA] RewriteRule ^/([a-z]{2})/([A-Za-z0-9-_]+)\.php$ /$2.php\?language=$1 [L,QSA] 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 страницу
Первый совет: снеси нафиг денвер и поставь что-то свежее. Второй совет: включи отладку рерайтера и посмотри как красиво разрешается твой запрос. Третий совет: если есть возможность НЕ использовать рерайтер для редиректа с вэвэвэ на не-вэвэвэ - используй её. Четвёртый совет: если есть возможность НЕ использовать рерайтер для редиректа несекура на секур - используй её.