XF 1.5 редиректы после переезда с VB или автозамены %3F , %3D

_seal

Проверенные
Сообщения
99
Реакции
34
Баллы
1,715
Друзья ! кто мастер, помогите составить редирект. Гугль наловил кучу ссылок такого вида

Снимок экрана 2016-12-31 в 07.56.37.jpg
Снимок экрана 2016-12-31 в 07.56.37.jpg
Снимок экрана 2016-12-31 в 07.58.11.jpg


что по сути есть


и


нормальная ссылка которую прекрасно обрабатывает скрипт редиректа от XF

как можно привести в чувство такие ссылки?
 
Последнее редактирование:
Много уважаемый sonic. Я смотрю что отвечать не читая топик стартера это Ваше кредо. При этом давать советы.

Еще раз повторюсь. Redirection Scripts - стоят, настроены, работают как надо.

Когда приходит ссылка вида showthread.php?t=24487 то все класс. потому что она правильная.

Гугль же наловил где то ссылок вида showthread.php%3Ft%3D22321 где %3F это знак ? а %3D знак =

Нужно составить реврайт который заменит %3F и %3D на ? и =


отвечу сам себе. может кому пригодится. решение . является весьма универсальным.

Код:
# If THE_REQUEST contains a URL-path with a percent-encoded "?" and/or a query string with one
# or more specific percent-encoded characters, and we're not already in the process of fixing
# it, then copy the client-requested URL-path-plus-query-string into the "MyURI" variable.
RewriteCond %{ENV:MyURI}>%{THE_REQUEST} ^>[A-Z]+\ /([^\ ]+)\ HTTP/
RewriteCond %1 ^([^?]*\?([^%]*(\%(25)*([^3].|.[^D]))*)*\%(25)*3D.*)$ [NC,OR]
RewriteCond %1 ^([^?]*\?([^%]*(\%(25)*([^2].|.[^6]))*)*\%(25)*26.*)$ [OR]
RewriteCond %1 ^(([^%]*(\%(25)*([^3].|.[^F]))*)*\%(25)*3F.*)$ [NC]
RewriteRule ^. - [NE,E=MyURI:%1]
#
# If any encoded question mark is present in the client-requested URI, and
# no unencoded question mark is present, replace the first encoded question
# mark, queue up a redirect, and then re-start mod_rewrite processing
RewriteCond %{ENV:MyURI} ^[^?]+$
RewriteCond %{ENV:MyURI} ^(([^%]*(\%(25)*([^3].|.[^F]))*)*)\%(25)*3F(.*)$ [NC]
RewriteRule ^. - [NE,E=MyURI:%1?%7,E=QRedir:Yes,N]
#
# If any encoded "=" sign follows the "?", replace it, queue
# up a redirect, and re-start mod_rewrite processing
RewriteCond %{ENV:MyURI} ^([^?]*\?([^%]*(\%(25)*([^3].|.[^D]))*)*)\%(25)*3D(.*)$ [NC]
RewriteRule ^. - [NE,E=MyURI:%1=%7,E=QRedir:Yes,N]
#
# If any encoded ampersand follows the "?", replace it, queue
# up a redirect, and then re-start mod_rewrite processing
RewriteCond %{ENV:MyURI} ^([^?]*\?([^%]*(\%(25)*([^2].|.[^6]))*)*)\%(25)*26(.*)$
RewriteRule ^. - [NE,E=MyURI:%1&%7,E=QRedir:Yes,N]
#
# If we get here, there are no more percent-encoded characters which can
# and should be replaced by the rules above, so do the external redirect
RewriteCond %{ENV:QRedir} =Yes [NC]
RewriteRule ^. http://www.example.com/%{ENV:MyURI} [NE,R=301,L]

в самом конце заменить на свой домен ;)
 
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу