Как удалять лишние символы из урл

kikosik666

Новичок
Ребята такая проблема и не как не могу решать

Например одна страница моего сайта http://site.ru/smotret-online/16670/realyno!-konditer-2017/

По скольку в урл есть символ "!" страница не открывется, вместо фильма открывается 404. php страница(материал не найден).

Когда удаляю символ "!", страница с фильмом открывается.
http://site.ru/smotret-online/16670/realyno-konditer-2017/

Как можно решать эту проблему?

1. Есть код в htaccess или php с помощью которого все такие символы будут игнорированы и страница будет открыватся с этим символом.
2. Или как можно через htaccess или php сделать так чтобы где есть такие символы, они автоматически удалялись из урл

В основном в урлах встречаются такие символы и ссылки начинают не работать: & ! ( ) [ ] * + и пробел


Пытался через php получить ссылку, найти эти символы и удалить, и сделать редирект на страницу без символов, но не получилась.

Спасибо



 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
А урлы то откуда берем?
 

Фанат

oncle terrible
Команда форума
непонятно, как могут влиять на адрес любые символы в названии, если в урле есть id
почему сайт не находит страницу по id=16670?
 

WMix

герр M:)ller
Партнер клуба
ой там похакать можно, и xss и injections. все работает.. прямо поле для игр :)
Код:
$ wget -O ttt "http://kinopark.su/serialy/?page=%3Cscript%3Ealert(%27hello%27);%3C/script%3E"
$ iconv -f WINDOWS-1251 -t UTF-8 ttt > ttt1
$ cat ttt1 |grep alert
<title>Сериалы онлайн: смотреть бесплатно - страница <script>alert('hello');</script></title>
<meta name="description" content="Смотреть Сериалы онлайн беспатно и без регистрации. Отечественные и зарубежные Сериалы онлайн - страница <script>alert('hello');</script>" />
                            <div class="f_capt"><h1>Сериалы онлайн - страница <script>alert('hello');</script></h1></div>
 

AnrDaemon

Продвинутый новичок
Просто у кого-то роутер через одно место настроен…
 

fixxxer

К.О.
Партнер клуба
непонятно, как могут влиять на адрес любые символы в названии, если в урле есть id
почему сайт не находит страницу по id=16670?
если правильно понял о этой страничке речь
http://kinopark.su/smotret-online/16670/realyno-konditer-2017/
А там по ID и есть. http://kinopark.su/smotret-online/16670/zhopa/ - работает.

Видимо, либо там RewriteRule с регуляркой вида /[\w\d-]+/, либо конфигурация router-а с такой же регуляркой.
 
Сверху