Замена, удаление повторных символов mod_rewrite

P
На сайте с 03.04.2003
Offline
137
1037

Задача такая - не знаю с какого бодуна но на одном из серваков гугл стал вставлять от одного до множества "\" в урл, выдавать ему 404 не хочется, а хочется аккуратно намекнуть ему 301-м пинком, что они там лишние... Вообщем задача убрать все "\" или "%5C" и перекинуть на урл без них, причем любое кол-во таких одинаковых символов, ковырялся - сам чтото не разобрался...

Заранее спасибо!

P.S. На самом деле это пример из жизни но для пополнения флешки в мозгах был бы признателен если б указали 2 варианта - убрать ВСЕ одинаковые символы и второй вариант - заменить все одинаковые, подряд идущие одним... Первое просто актуальнее...

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

Наврядли это можно сделать мод_реврайт-ом, там с слэшами как всегда проблемы, но попробуйте

RewriteEngine On

RewriteRule ^(.+)(%5C)+$ /$1 [R=301,L]

P
На сайте с 03.04.2003
Offline
137
#2
siv1987:
Наврядли это можно сделать мод_реврайт-ом, там с слэшами как всегда проблемы, но попробуйте

RewriteEngine On
RewriteRule ^(.+)(%5C)+$ /$1 [R=301,L]

Это подразумевает обрезание всех этих символов, правильно я понял? Спасибо, завтра попробую, не ожидал что ктото быстро ответит )))

А, ну еще вопрос не совсем в тему - порядок обработки правил там как он следует по порядку прописанному в htaccess? т.е. если этот редирект сработает на правильную страницу, потом он опять обратиться к правилам если с этой страницы будет редирект прописан в правилах, так? В случае если я буду переносить сайт - сработает сначала кастрация бэкслешей, а потом редирект на другой сайт если такой порядок стоит в хтакцесс?

siv1987
На сайте с 02.04.2009
Offline
427
#3
puncik:
Это подразумевает обрезание всех этих символов, правильно я понял?

Подразумевает, но с большой долей вероятности он может не сработать. У меня по крайней мере не работает, но вы попробуйте вдруг вам повезет. Сначала попробуйте если в самом скрипте можно такие ссылки перехватить, потому что и в php конечные многослеши могут не передаваться.

puncik:
В случае если я буду переносить сайт - сработает сначала кастрация бэкслешей, а потом редирект на другой сайт если такой порядок стоит в хтакцесс?

Да.

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