Spalz
@Spalz
Верстка и всего по немногу

Как правильно писать регулярные выражения в .htaccess?

Всем доброго дня, нужна помощь по .htaccess

Два дня уже не могу понять как он работает, что только не пробовал.

Перейду к сути, есть ссылка:
domain.ru/s_shoping/shop?sid=253%23modal/bundle/82522
В ней есть символ %23, мне надо заменить на (#) hash.
Такие ссылки появляются например если поделится ссылкой в Skype на ios, может и в других программах есть такая же проблема

Как я только не пробовал писать:
RewriteRule ^(/shop\?sid=[0-9]*)?%23(modal/bundle/[0-9]*)$ /shop\?sid=$1#modal/bundle/$2 [NE,R=301,L]
RewriteRule ^(.*)?%23(.*)?$ $1#$2 [NE,R=301,L]


В общем перепробовал десяток вариантов, с разными флагами, дополнительными модулями и т.д. но всё бесполезно...
В чем я делаю ошибку? Если используешь одну группу то все работает, если две уже ломается(или если за группой дописать любой символ тоже не срабатывает)
Ничего особенного в этих регулярках нет... Или может тут можно обойтись сменой кодировки...

Заранее благодарю за любую подсказку
  • Вопрос задан
  • 176 просмотров
Решения вопроса 1
Spalz
@Spalz Автор вопроса
Верстка и всего по немногу
Пришлось еще раз пройтись по документации и того получилось так:

RewriteBase /s_shoping/
RewriteCond %{QUERY_STRING} ^(.*?)(%23)(.*?)$
RewriteRule ^(shop.php?)$ shop?%1#%3 [NC,L,R=301,NE]
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
у вас редирект с гет запросом, он не является частью урла.
его делают по другому.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы