Хак Убираем xfsearch из адресной строки
Хак убирает xfsearch для страниц по всему сайту.
Внимание! Не нужно создавать доп поле с одинаковым альтернативным именем с категорий.
Будет работать для перекрестных доп полей.
Пример (было -> стало):
https://site.com/xfsearch/genre/rock/ -> https://site.com/genre/rock/
https://site.com/xfsearch/artist/v.tsoy/ -> https://site.com/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
Автор: dj-avtosh
Версия DLE: 14
hide-xfields-from-url_xml.zip
[911 b] (cкачиваний: 185)