Удалить параметры в URL'е с помощью редиректа

C1
На сайте с 13.11.2013
Offline
3
674

Здравствуйте. Имеется сайт с возможностью выбора региона. При щелчке на регион к URL'у добавляется "?location=РЕГИОН%20КИРИЛЛИЦЕЙ"

Вопрос:

Как от этого избавиться? При написании в .htaccess "RewriteRule ^(.*)location=Республика%20Башкортостан$ и т.д." вылезает ошибка 500.

Подозреваю, что проблема может быть либо в кодировке, либо в пробелах (исправить это уже возможности нет).

Пробовал ставить AddDefaultCharset и WINDOWS-1251 и UTF-8

дани мапов
На сайте с 06.09.2012
Offline
204
#1

Попробуйте в форме написать method="post".

Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
siv1987
На сайте с 02.04.2009
Offline
427
#2

Проблема видимо в том что вы не понимаете что такое параметры. Попробуйте как подсказали выше типы формы поменять на пост. Но скорее всего и в скрипте где принимается значение этой переменной из GET поменять на POST

C1
На сайте с 13.11.2013
Offline
3
#3
Cherkes1:
исправить это уже возможности нет

Форму трогать не нужно.

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

L
На сайте с 07.12.2007
Offline
351
#4
Cherkes1:
ЗПодозреваю, что проблема может быть либо в кодировке, либо в пробелах (исправить это уже возможности нет).

Проблема в самих русских буквах, веб сервер не будет редиректить на них, тк они запрещены в URI, см RFC 3986 (или предыдущие RFC 1738 и RFC 2396 - их можно найти и на русском) Поэтому и вылетает ошибка 500(поставь uri латиницей в МодРеврайте и проверь исчезнет ли ошибка).

PS: Это браузеры вас избаловали - пиши что хочешь, он сам всё поменяет как надо.

C1
На сайте с 13.11.2013
Offline
3
#5
Ladycharm:
Проблема в самих русских буквах, веб сервер не будет редиректить на них

Разве?

Тогда почему в некоторых случаях получается сделать редирект:

ufapsiholog.ru/контакты

=>

ufapsiholog.ru/contacts

TF-Studio
На сайте с 17.08.2010
Offline
334
#6

Пишите регион в куку, при помощи js.

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

Всё ещё лучший способ заработка для белых сайтов: GoGetLinks (https://www.gogetlinks.net/?inv=fahbn8).
nikonlay
На сайте с 11.12.2006
Offline
191
#7

Ladycharm вам правильно пишет на счет русских букв.

по меньшей мере, в .htaccess вместо

RewriteRule ^(.*)location=Республика%20Башкортостан$

надо написать

RewriteRule ^(.*)location=%D0%A0%D0%B5%D1%81%D0%BF%D1%83%D0%B1%D0%BB%D0%B8%D0%

BA%D0%B0%20%D0%91%D0%B0%D1%88%D0%BA%D0%BE%D1%80%D1%82%D0%BE%D1%81%D1%82%D0%B0%D0%BD

Мощные фонари и телескоп: https://market.yandex.ru/business/79203856
siv1987
На сайте с 02.04.2009
Offline
427
#8

ТС при всем не учел что

- дело не столько в кириллице, сколько в том что у него селектор списка

- при так называемом редиректе эта переменная потеряется, в итоге от этой формы никакого толку не будет.

Советую тс-у найти компетентных людей, которые объяснит ему что такое форма, и как работает редирект. Ваш вариант это переделать форму, либо переделать скрипт обрабатывающий эту форму

L
На сайте с 07.12.2007
Offline
351
#9
Cherkes1:
Тогда почему в некоторых случаях получается сделать редирект:
ufapsiholog.ru/контакты
=>
ufapsiholog.ru/contacts

Если вбить url в браузер - он перекодирует русские буквы за вас и отсылает http://www.ufapsiholog.ru/%D0%BA%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B (для вашего примера)

В .htacces/modrewrite - никто за вас ничего не перекодирует, и вылетает ошибка.

Вы скопируйте в FireFox ссылку с примеров из своего поста правой кнопкой мышки, и вставьте в notepad - увидите закодированный url (кроме старой Opera - она покажет русские)

Можно сделать как посоветовал nikonlay выше, но надо быть уверенным, что все браузеры будут кодировать кириллицу одинаково.

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

Если отвлечься от сути темы, то проблему с кириллицей отлично решает перекодирование htaccess в utf-8

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