Нужно перенаправить испорченную CodeIgniter ссылку с символами %C2%A0 на другой адрес через .htaccess
Для примера
http://mysite.com/some-page%C2%A0
нужно
http://mysite.com/other-page
Redirect 301 /some-page%C2%A0 /other-page не сработал
Сдесь я нашел некий пример
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /[^%?\ ]*\%
RewriteRule ^. http://www.example.com/ [R=301,L]
Правило редиректит все ссылки с спес символами %..
Я попробовал следующее:
RewriteCond %{THE_REQUEST} some-page[^%?\ ]*\%
RewriteRule ^. /other-page [R=301,L]
Но при тесте, мне в новую ссылку началась добавляться старая ссылка как параметр, причем многократно, так как правило начало работать рекурсивно (потому что some-page опять встречался в новой ссылке ну уже как параметр, пресечь это не удалось):
http://mysite.com/index.php/other-page?/some-page/&... etc
После гуглинга я нашел это
и сменил чуть правило
RewriteRule ^. /other-page [R=301,L]
to
RewriteRule .? /other-page$1? [R=301,L]
Итак, чтобы сделать 301 редирект битой ссылки с спец символами % нужно примерно такое:
RewriteCond %{THE_REQUEST} some-page[^%?\ ]*\%
RewriteRule .? /other-page$1? [R=301,L]
Благодарю!
ReplyDeleteПомог данный способ!