Скрыть объявление
ВАШИ ПРАВА ОГРАНИЧЕНЫ!

Зарегистрируйтесь на форуме, чтобы стать полноценным участником сообщества!

Баг в перекрестных ссылках dle (все версии)

Тема в разделе "Вопросы- ответы", создана пользователем byroot, 24 апр 2016.

24.04.16 в 09:49
24.04.16 в 14:17
8
2.414
0
  1. TopicStarter Overlay
    byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.295
    Лучших ответов:
    54
    Рейтинги:
    +5.206 / 74 / -0
    Вчера только обнаружил неприятную вещь: если в перекрестных ссылках в доп полях имеется точка - поиск по значению этого доп поля не будет происходить, и выдавать ошибку 404. С одной стороны понятно, что точка в ссылке используется как разделитель чтобы указывать разрешение php/html/html/asp и другие... Но нам тут разрешение не надо в доп полях и пока не придумал как правильно пофиксить баг. С одной стороны была мысль сделать удаление последней точки в значении доп поля, но эта правка не исправит ошибки 404 в доп поле, когда точка стоит в середине.

    Например, кто использует актеров как перекрестные ссылки, можете посмотреть на примере фильма Мстители*: в актерах есть такие имена как "Роберт Дауни мл." и "Сэмюэл Л. Джексон"

    Есть у кого какие мысли, как правильно и без последствий пофиксить этот баг?
     
  2. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.403
    Лучших ответов:
    32
    Рейтинги:
    +4.017 / 114 / -0
    Для DLE ниже 11
    Найти в .htaccess
    Код:
    RewriteRule ^xfsearch/([^/]*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]
    RewriteRule ^xfsearch/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
    
    Заменить на :
    Код:
    RewriteRule ^xfsearch/(.*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]
    RewriteRule ^xfsearch/(.*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
    
    Для DLE 11 и выше
    Найти в .htaccess
    Код:
    RewriteRule ^xfsearch/([^.]+)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
    RewriteRule ^xfsearch/([^.]+)/?$ index.php?do=xfsearch&xf=$1 [L]
    Заменить на :
    Код:
    RewriteRule ^xfsearch/(.*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
    RewriteRule ^xfsearch/(.*)/?$ index.php?do=xfsearch&xf=$1 [L]
     
    #2 PunPun, 24 апр 2016
    Последнее редактирование: 24 апр 2016
    • Нравится Нравится x 3
  3. TopicStarter Overlay
    byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.295
    Лучших ответов:
    54
    Рейтинги:
    +5.206 / 74 / -0
    почти )) исправлено если ссылки с xfsearch/*

    Если без xfsearch, то я добавил выше этих строк вот так (в зависимости от ваших названий доп полей) значения для каждого доп поля :)
    Код:
    RewriteRule ^(actors)/(.*)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2 [L]
    RewriteRule ^(actors)/(.*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xn=$1&xf=$2&cstart=$3 [L] 
    PS если ссылка вида text./ - то будет выходить Hacking attempt!, пришлось избавляться от слешей на конце ссылки...
     
  4. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.403
    Лучших ответов:
    32
    Рейтинги:
    +4.017 / 114 / -0
    У меня все в порядке. upload_2016-4-24_11-22-35.png
     
  5. TopicStarter Overlay
    byroot

    Забанен

    Регистрация:
    10 окт 2015
    Сообщения:
    12.295
    Лучших ответов:
    54
    Рейтинги:
    +5.206 / 74 / -0
    o_O странно... ну да бог с ним. главное что сейчас работает и ищет :)
     
  6. templatelab

    Команда форума VIP Кинотрафик v2

    Регистрация:
    27 сен 2015
    Сообщения:
    187
    Лучших ответов:
    0
    Рейтинги:
    +32 / 0 / -0
    Еще в перекрестных ссылках знак плюс используется в урле, думаю это несовсем гуд, можно от него избавиться ?
     
  7. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.403
    Лучших ответов:
    32
    Рейтинги:
    +4.017 / 114 / -0
    + в url ==
    Это специальный символ означающий пробел.
     
  8. templatelab

    Команда форума VIP Кинотрафик v2

    Регистрация:
    27 сен 2015
    Сообщения:
    187
    Лучших ответов:
    0
    Рейтинги:
    +32 / 0 / -0
    Gameer, а тире вместо + можно сделать ?
     
  9. PunPun

    VIP Кинотрафик v2

    Регистрация:
    11 июн 2015
    Сообщения:
    7.403
    Лучших ответов:
    32
    Рейтинги:
    +4.017 / 114 / -0
    можно, сделать
    PHP:
    str_replace(array(" ""+"" "" "), "-"$val);
     
Похожие темы
  1. Krabsterz8

    Вопрос? .

    Ответов:
    6
    Просмотров:
    3.159
  2. Winston?!
    Ответов:
    24
    Просмотров:
    4.806
Загрузка...
Яндекс.Метрика