Помогите с .htaccess и кириллицей

12
Василич#
На сайте с 10.03.2009
Offline
111
2551

Здравствуйте ! Вот мучаюсь, немогу решить проблему:

Есть сайт в кодировке windows-1251 . Есть категории вида:

сайт.ру/index.php?do=search_xf&loc=1&loc=1&cookcat=Первые%20блюда

Хочу сделать так:

сайт.ру/first-dish

Пишу в .htaccess:

RewriteRule ^first-dish(/?)+$ index.php?do=search_xf&loc=1&loc=1&cookcat=Первые%20блюда [L]

RewriteRule ^first-dish(.*)$ index.php?do=search_xf&loc=1&loc=1&cookcat=Первые%20блюда&q=$1 [L]

или

RewriteRule ^first-dish(/?)+$ index.php?do=search_xf&loc=1&loc=1&cookcat=%D0%9F%D0%B5%D1%80%D0%B2%D1%8B%D0%B5%20%D0%B1%D0%BB%D1%8E%D0%B4%D0%B0 [L]

RewriteRule ^first-dish(.*)$ index.php?do=search_xf&loc=1&loc=1&cookcat=%D0%9F%D0%B5%D1%80%D0%B2%D1%8B%D0%B5%20%D0%B1%D0%BB%D1%8E%D0%B4%D0%B0&q=$1 [L]

Но ни первый ни второй вариант не работает, видимо из-за символов кириллицы.

Не подскажете решение ? Всю голову измучал (

bmw-power.com.ua (https://bmw-power.com.ua)
webiumpro
На сайте с 20.03.2017
Offline
39
#1

В utf8 кодировку менять пробовали?

Копирование лендингов. Разработка на фреймворке сервисов. Создание сайтов (/ru/forum/994418)
Василич#
На сайте с 10.03.2009
Offline
111
#2

webiumpro, спасибо, в UTF-8 (без БОМ поменял, вроде работает, но пробелы не ставятся, вместо Первые%20блюда, в адресной строке Первые0блюда.

У меня есть модуль, который обрабатывает ссылки в .htaccess

# Вывод по дополнительному полю
RewriteRule ^sf(/?)+$ index.php?do=search_xf [L]
RewriteRule ^sf/(.*)$ index.php?do=search_xf&q=$1 [L]

т.е. ссылки формируются вида:

сайт.ру/sf/category:13/cookcat:Первые%20блюда
сайт.ру/sf/category:13/cookcat:Вторые%20блюда

и т.д. иного разных страниц(автоматом всегда разные)

Как заставить только определенные страницы, вида:

сайт.ру/sf/category:13/cookcat:Первые%20блюда

отображаться как

сайт.ру/first-dishes

т.е. только определенные которые я хочу ? Заранее спасибо, ато немогу осилить...

webiumpro
На сайте с 20.03.2017
Offline
39
#3

Раз 10 прочитал, и понять все равно не смог, что именно нужно) Попробуйте как-то более структурировано изложить суть проблемы

Василич#
На сайте с 10.03.2009
Offline
111
#4

webiumpro, прошу прощения, реально, прочитал и сам ничего не понял)))

У меня есть модуль (использую DLE) поиска по дополнительным полям, в зависимости от его значения (SearchFields). Я этот фильтр использую как категории. По дефолту, результаты сортировки выглядят так:

сайт.ру/sf/category:13/cookcat:Первые%20блюда

(т.е. провожу выборку по значению дополнительного поля "Первые блюда". Такая ссылка формируется из .htaccess (предусмотрено самим модулем):

# Вывод по дополнительному полю
RewriteRule ^sf(/?)+$ index.php?do=search_xf [L]
RewriteRule ^sf/(.*)$ index.php?do=search_xf&q=$1 [L]

т.е. она автоматом формирует url для каждого отдельного доп. поля.

К примеру, у меня много выборок вида:

сайт.ру/sf/category:13/cookcat:Первые%20блюда

сайт.ру/sf/category:13/cookcat:Вторые%20блюда

сайт.ру/sf/category:13/cookcat:Закуски

и т.д.

Я хочу, чтобы ссылка сайт.ру/sf/category:13/cookcat:Первые%20блюда отображалась и заменялась сайт.ру/first-dishes

Может и не понятно обьяснил, но как мог))) В общем, нужно сделать чтобы ссылка:

сайт.ру/sf/category:13/cookcat:Первые%20блюда

стала ссылкой

сайт.ру/first-dishes

webiumpro
На сайте с 20.03.2017
Offline
39
#5

Ага, вроде понял) Попробуйте вот так:


RewriteRule ^sf/category:13/cookcat:.* /first-dishes [L]

Точно не знаю, сработает ли. Но направление должно быть верное

Василич#
На сайте с 10.03.2009
Offline
111
#6

webiumpro, к сожалению, не работает...

MT
На сайте с 17.01.2017
Offline
22
#7


RewriteRule ^first-dishes(/?)+$ index.php?do=search_xf&q=category:13/cookcat:Первые%20блюда [L]
Василич#
На сайте с 10.03.2009
Offline
111
#8
MikeTheRaven:
RewriteRule ^first-dishes(/?)+$ index.php?do=search_xf&q=category:13/cookcat:Первые%20блюда [L]

Бросает на страницу:

сайт.ру/sf/cookcat:Первые0блюда/q:es/

Василич#
На сайте с 10.03.2009
Offline
111
#9

Всю голову изломал, а ответа так и ненашёл...(

sivrem
На сайте с 24.02.2017
Offline
1
#10

В .htaccess прописал правило для обработки гет-параметров для кирилицы, во всех браузерах работает, а в IE никак не хочет!

Вот пример из .htaccess

#Верхний регистр+цифры и знаки

RewriteCond %{REQUEST_URI} !^/administrator.*

RewriteCond %{QUERY_STRING} ^%D0%([9A].)|(81)([0-9-]+)=%D0%([9A].)|(81)([0-9-]+)

RewriteRule ^.*$ Страница 404? [R=301,L]

#Нижний регистр + цифры и знаки

RewriteCond %{REQUEST_URI} !^/administrator.*

RewriteCond %{QUERY_STRING} ^%D[01]%([B8].)|(91)([0-9-]+)=%D[01]%([B8].)|(91)([0-9-]+)

RewriteRule ^.*$ Страница 404? [R=301,L]

То есть, если к примеру набрать адрес https://www.igorian-cg.com/prajs/?Запрос=запрос

то меня выкинет на 404.

Как сделать, чтоб работало в IE

12

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