Редактор темы

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

Ботяра

Забанен
Регистрация
10 Окт 2015
Сообщения
0
Рейтинг реакций
-155
Баллы
0
1/3
Автор темы
Вчера только обнаружил неприятную вещь: если в перекрестных ссылках в доп полях имеется точка - поиск по значению этого доп поля не будет происходить, и выдавать ошибку 404. С одной стороны понятно, что точка в ссылке используется как разделитель чтобы указывать разрешение php/html/html/asp и другие... Но нам тут разрешение не надо в доп полях и пока не придумал как правильно пофиксить баг. С одной стороны была мысль сделать удаление последней точки в значении доп поля, но эта правка не исправит ошибки 404 в доп поле, когда точка стоит в середине.

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

Есть у кого какие мысли, как правильно и без последствий пофиксить этот баг?
 
Для 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]
 
Последнее редактирование:
Автор темы
почти )) исправлено если ссылки с 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!, пришлось избавляться от слешей на конце ссылки...
 
почти )) исправлено если ссылки с 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!, пришлось избавляться от слешей на конце ссылки...
У меня все в порядке. upload_2016-4-24_11-22-35.png
 
Еще в перекрестных ссылках знак плюс используется в урле, думаю это несовсем гуд, можно от него избавиться ?
 
Gameer, а тире вместо + можно сделать ?
 

Похожие темы Последние темы Популярные темы

Назад
Сверху