Не работает поиск по тегам, содержащим слэш

Если задать топику тег, содержащий прямой слэш или обратный слэш, то поиск по такому тегу не работает, выдается ошибка 404.
В случае с прямым слэшем ошибку выдает Livestreet, а в случае с обратным, похоже, роутинг вообще не работает, и у меня ошибку выдает сам Apache.

11 комментариев

avatar
Я бы попросту запретил такие теги — логика обработки урла движком не подразумевает подобных тегов
avatar
Ну, я вот, например, публикую топики о группе AC/DC, как мне тут быть без слэша?
Можно, скажем, просто генерировать для таких тегов другие URL, скажем, tag/AC-DC/ или tag/AC%2FDC/
Выкрутиться можно, словом.
avatar
\ этот слеш у меня лично работает… а / канешно вылетает 404…
avatar
Я не знаю, как быть. Я просто констатирую факт: движок не может корректно обрабатывать теги, в которых есть слеш, т.к. текст тега является частью урл. Если в теге есть слеш, то этот урл не может быть правильно обработан. Символ %2F в урле обрабатывается так же, как обычный слеш (попробуй подставить его в адресе вместо слеша).

Думаю, этот нюанс можно отнести к категории багов, и надеятся, что он будет устранен на уровне ядра движка, чтоб не заниматься самопальными заплатками.
avatar
я думаю что при добавлении тега нада просто менять слеши на дефис и всё. и в поиске подставлять дефис если ввели слеш. принудительно. вроде несложный хак.
avatar
Хак совсем не сложный. Но, имхо, это не просто развитие базовой функциональности, и не пожелание пользователя, которому вечно что-то не хватает, а именно баг, который желательно бы исправить на уровне ядра.
avatar
мм ну это много ядра переписать придеться =)
я не спорю что это недодумка в логике ядра… но пока как быстрая заплатка наверно себе так сделаю как написал.
гг пошел проверил тоже самое в поиске… а там логика то уже другая =)) search/topics/?q=AC%2FDC =) прекрасно пашет =)
может теги тоже поиском просто обрабатывать? ну примерно поиском… логику от туда взять.
avatar
Ну да, если сделать типа /tag/?t=бла/бла, а в экшене параметр не из адресной части урла брать, а из гет-строки, то работать должно без проблем.
avatar
вот и я про тоже.
avatar
Наткнулся на топик :)
Как вариант, можно сделать двойной urlencoding.
Т.е. слэш — это %2f. Если применить urencode к %2f, то получим %252f, это уже вэбсервер обработает правильно. Т.е. роутинг так и останется, /tag/бла%252fбла. А вот в базу/из базы нужно клась/доставать кодированные правильно значения.
avatar
Подскажите, пожалуйста, есть ли какой-то метод запретить некоторые символы в метках, например с заменой на пробел, или просто чтобы удалялись нафиг?
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.