Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Модули для DLE » Убираем xfsearch из адресной строки

Убираем xfsearch из адресной строки


     09.10.2020    Модули для DLE    3124    7 комментариев

Краткая информация о модуле (хаке)

Автор: dj-avtosh
Версия DLE: 14
Цена: Бесплатно
Хак убирает xfsearch для страниц по всему сайту.

Внимание! Не нужно создавать доп поле с одинаковым альтернативным именем с категорий.

Будет работать для перекрестных доп полей.

Пример (было -> стало):

https://site.net/xfsearch/genre/rock/ -> https://site.net/genre/rock/
https://site.net/xfsearch/artist/v.tsoy/ -> https://site.net/artist/v.tsoy/


Установка:

1. Скачать и установить плагин:
2. Прописать правила (обязательно выше правил для категорий)

NGINX (nginx.conf -> server -> location):

Найти:


    rewrite "^/([^.]+)/page/([0-9]+)(/?)+$" /index.php?do=cat&category=$1&cstart=$2 last; 
    rewrite "^/([^.]+)(/?)+$" /index.php?do=cat&category=$1 last;


Вставить выше:

    
location / {

        rewrite "^/(.*[\.]+.*)/page/([0-9]+)(/?)+$" /index.php?do=xfsearch&xf=$1&cstart=$2  last; 
        rewrite "^/(.*[\.]+.*)/?$" /index.php?do=xfsearch&xf=$1 last;

 }



APACHE2 (.htaccess) - не тестировал, пишите в телегу:

Найти:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/page/([0-9]+)(/?)+$ index.php?do=cat&category=$1&cstart=$2 [L]


Выше вставить:


RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[\.]+.*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [L]
RewriteRule ^(.*[\.]+.*)/([^/]*)(/?)+$ index.php?do=xfsearch&xf=$1 [L]


3. Убрать редиректы из .htaccess связанные с xfsearch


RewriteRule ^xfsearch/(.*)/page/([0-9]+)(/?)+$ index.php?do=xfsearch&xf=$1&cstart=$2 [B,L]
RewriteRule ^xfsearch/(.*)/?$ index.php?do=xfsearch&xf=$1 [B,L]


4. Завести переадресацию для старых xfsearch (допустим на главную)

Найти:

RewriteRule ^page/([0-9]+)(/?)$ index.php?cstart=$1 [L]


выше вставить:

 RewriteRule ^xfsearch/(.*)$ / [R=301,L]


или на новую страницу:

 RewriteRule ^xfsearch/(.*)$ /$1 [R=301,L]


5. Редиректы добавляем для того, что бы работал xfsearch для значений с точкой. Все новые перекрестные доп.поля будут работать и не будут требовать добавления правила в .htaccess

hide-xfields-from-url.xml.zip [911 b] (cкачиваний: 281)

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

dj-avtosh
PHP-developer

dj-avtosh - 9 октября 2020 17:00 -

Комментарий для плюсов.

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 10 октября 2020 06:39 -

UPD 10.10.2020

Обновил редиректы. Просьба обновить у себя

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

dj-avtosh
PHP-developer

dj-avtosh - 10 октября 2020 15:47 -

UPD 10.10.2020 15:50

Обновил редиректы для apache. Теперь должны работать. Просьба обновить у себя

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Nimax
Юзер

Nimax - 10 июня 2022 15:11 -

Подскажите для 15.1 (NGINX) в данном случае пишет - Hacking attempt!

stillmaster
Юзер

stillmaster - 19 августа 2023 09:28 -

Да xfsearch убирает, но проблема возникает с кешем ибо если перейти на страну нидердланды он покажет эту страну а если потом перейти на сша он снова покажет нидерланды

toxicpioner
Юзер

toxicpioner - 15 декабря 2024 19:31 -

если в доп поле есть пробел, будет выдавать просто 403 стр

derebas
Юзер

derebas - 16 декабря 2024 02:35 -

в правилах транслитерации для tagvalue поставьте замену " " => "-", например так
str_replace(array('.', ' ', '/', '&', "'", '+', '«', '»', ':', '!'), array('', '-', '-', 'and', '', '', '', '', '', '')

Чтобы комментировать - войдите или зарегистрируйтесь на сайте
наверх