0 Пользователей и 1 Гость просматривают эту тему.
  • 13 Ответов
  • 2599 Просмотров
*

Karyuudo

  • Захожу иногда
  • 354
  • 0 / 0
Нашел полно информации как удалять index, HTML, / и прочие.

А как сократить путь к статье? Что прописать в htaccess, чтобы вместо
сайт.ру/категория/подкатегория/id-материал
было
сайт.ру/id-материал
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Нашел полно информации как удалять index, HTML, / и прочие.

А как сократить путь к статье? Что прописать в htaccess, чтобы вместо
сайт.ру/категория/подкатегория/id-материал
было
сайт.ру/id-материал


Нужно видеть структуру Ваших каталогов и иметь доступ к Вашему сайту.
« Последнее редактирование: 29.10.2015, 11:52:50 от Филипп Сорокин »
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Ради интереса провёл "эксперимент". Установил чистую Joomla на локалку и написал выражение. Проверил — вроде работает, но за последствия не ручаюсь. Не претендую на истину в последней инстанции, может товарищи "постарше" подскажут вариант лучше. Использовал чистый джумловский .htaccess

Код
## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
## End - Custom redirects

# Необходимо писать редиректы точно в этом месте
# Типичная ошибка новичков — добавлять директивы в начало или конец .htaccess

Код
# Убедимся, что это не файл
RewriteCond %{REQUEST_FILENAME} !-f [OR]

# Если это всё-таки файл, убедимся, что под исключения не попадает index.php, [NC] флаг отменяет регистрочувствительность
RewriteCond %{REQUEST_URI} ^/index\.php [NC]

# Проверим, что это не физическая директория
RewriteCond %{REQUEST_FILENAME} !-d

# index.php в URLе может быть, может и нет, как и субкатегория. Здесь теоретически может
# возникнуть неопределённость: под шаблон ^[^/]+/(\d+-[^/]+) могут попасть URLы, не
# относящиеся к материалам. Возможно, следует уточнить шаблон, но для этого необходимо
# знать структуру каталогов самого сайта; также можно добавить исключения
# в RewriteCond в зависимости от обстоятельств

RewriteRule ^(?:index\.php/)?(?:[^/]+/)?[^/]+/(\d+-[^/]+)$ /$1 [R=301,L,NC]

# Или более "радикальный" шаблон для субкатегорий любого уровня вложенности (см. пост ниже)
# RewriteRule ^(?:index\.php/)?(?:[^/]+/)+(\d+-[^/]+)$ /$1 [R=301,L,NC]
« Последнее редактирование: 06.10.2015, 02:45:40 от Филипп Сорокин »
*

Karyuudo

  • Захожу иногда
  • 354
  • 0 / 0
Спасибо, но что-то не работает. у вас какой URL?
у меня например такой, с ним не срабатывает
Цитировать
Неверное перенаправление на странице

Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
http://sait.ru/kategoriya/podkategoriya/15-nazvaniye-materiala


думаю может у меня что не так. но ввожу в калькулятор, он пишет ошибка
http://regexpres.narod.ru/calculator.html


а на другом сайте работает
http://htaccess.madewithlove.be/
« Последнее редактирование: 05.10.2015, 15:02:23 от Karyuudo »
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Спасибо, но что-то не работает. у вас какой URL?
у меня например такой, с ним не срабатываетhttp://sait.ru/kategoriya/podkategoriya/15-nazvaniye-materiala


думаю может у меня что не так. но ввожу в калькулятор, он пишет ошибка
http://regexpres.narod.ru/calculator.html

Если не работает, то попробуйте с родным .htaccess Joomla. Не забудьте только кэш браузера перед этим почистить. Может, ваши правила перебивают директивы. Структура каталогов у меня абсолютно такая же.
« Последнее редактирование: 05.10.2015, 15:00:51 от Филипп Сорокин »
*

Karyuudo

  • Захожу иногда
  • 354
  • 0 / 0
Если не работает, то попробуйте с родным .htaccess Joomla. Не забудьте только кэш браузера перед этим почистить. Может, ваши правила перебивают директивы. Структура каталогов у меня абсолютно такая же.
не пойму, что у меня не так.
1. скачал чистую Joomla 3.4.4
2. взял оттуда htaccess
3. загрузил в дирректорию сайта (локально)
4. переименовал с точкой.
5. после
Цитировать
## End - Custom redirects
вставил Ваш код (далее идет
Цитировать
##
# Uncomment following line if your webserver's URL)
6. открываю страницу
Цитировать
Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
в админке выставлено следующее:
Цитировать
Включить SEF (ЧПУ) - да
Перенаправление URL - да
Добавлять суффикс к URL - нт
Алиасы в Unicode - нет
пробовал менять, тож не работает. (кэш вообще отключен)

хотя само поидее должно выражение работать, я проверил тут урлы своего сайта - все ок, сокращает:
http://htaccess.madewithlove.be/
« Последнее редактирование: 05.10.2015, 15:18:19 от Karyuudo »
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва

хотя само поидее должно выражение работать, я проверил тут урлы своего сайта - все ок, сокращает:
http://htaccess.madewithlove.be/

Ну... и я о том же! Вот посмотрите демо-сайт Joomla 3 на котором я ставил опыты, всё сокращается как надо: ссылка. Выкладываю полностью .htaccess

Спойлер
[свернуть]

Может вы не до конца очистили кэш браузера? Попробуйте удалить всю историю полностью и перезагрузить браузер, или воспользуйтесь другим браузером. Если и после этого не работает, то тут надо выяснять в индивидуальном порядке.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Сегодня снова вернулся к своим "опытам". Дублей страниц материалов в стандартной структуре каталогов насчитал немерено. Например, в стандартной демонстрашке есть статья про коалу, которая открывается по ссылке:

Код
http://site.ru/image-gallery/animals/25-koala

Данная статья доступна также по следующим пятнадцати(!) URL:

Код
http://site.ru/image-gallery/25-koala
http://site.ru/animals/25-koala
http://site.ru/25-koala
http://site.ru/photo-gallery/animals/25-koala
http://site.ru/park-site/photo-gallery/animals/25-koala
http://site.ru/park-site/animals/25-koala
http://site.ru/park-site/25-koala
http://site.ru/72-sample-data-articles/park-site/photo-gallery/animals/25-koala
http://site.ru/72-sample-data-articles/photo-gallery/animals/25-koala
http://site.ru/72-sample-data-articles/park-site/animals/25-koala
http://site.ru/72-sample-data-articles/animals/25-koala
http://site.ru/72-sample-data-articles/park-site/animals/25-koala
http://site.ru/72-sample-data-articles/park-site/photo-gallery/25-koala
http://site.ru/72-sample-data-articles/park-site/25-koala
http://site.ru/72-sample-data-articles/25-koala

В связи с чем, я написал более радикальный шаблон, который "рубит" любую комбинацию категорий разного уровня вложенности, перенаправляя все эти адреса на единственный желаемый вариант, в данном случае это:

Код
http://site.ru/25-koala

Новый шаблон:

Код
# Эту директиву надо поместить вместо старого RewriteRule; всё остальное оставить прежним
RewriteRule ^(?:index\.php/)?(?:[^/]+/)+(\d+-[^/]+)$ /$1 [R=301,L,NC]
« Последнее редактирование: 06.10.2015, 02:34:45 от Филипп Сорокин »
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Также обратите внимание на канонический URL! В случае с коалой он таков:
Код
http://site.ru/72-sample-data-articles/park-site/photo-gallery/animals/25-koala
То есть при оптимизации каталогов, если материал не привязан к определённому пункту меню, необходимо также править ссылки и ставить канонический <link> средствами PHP. Для этой цели лучше всего написать собственный SEF плагин. Конечно, есть, готовые решения типа sh404SEF, однако лучше использовать родной SEF плагин Joomla в связке с собственными скриптами, потому что любой сторонний плагин SEF — это тяжеловесный танк (на все случаи жизни), который может сильно замедлять сервер.
« Последнее редактирование: 06.10.2015, 03:18:20 от Филипп Сорокин »
*

Karyuudo

  • Захожу иногда
  • 354
  • 0 / 0
Причина в том, что не работала - плагин JL No doubles
вопрос еще один, для другого сайта:
просто сократить ссылку, "убрав каталог корневой" вроде бы так как я понял:
Код
RewriteRule (.*)(katalog/)(.*) /$1$3 [R=301,L,NC]
однако при переходе, пишут, что страница не найдена. VirtueMart. видимо не совместимо? короче лучше не заморачиваться?
*

voland

  • Легенда
  • 11030
  • 588 / 112
  • Эта строка съедает место на вашем мониторе
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Причина в том, что не работала - плагин JL No doubles
вопрос еще один, для другого сайта:
просто сократить ссылку, "убрав каталог корневой" вроде бы так как я понял:
Код
RewriteRule (.*)(katalog/)(.*) /$1$3 [R=301,L,NC]
однако при переходе, пишут, что страница не найдена. VirtueMart. видимо не совместимо? короче лучше не заморачиваться?
Напишите ссылку и желаемый результат перенаправления или попробуйте использовать плагин, предложенный Воландом.
« Последнее редактирование: 09.10.2015, 21:28:56 от Филипп Сорокин »
*

robert

  • Живу я здесь
  • 4974
  • 457 / 20
просто сократить ссылку, "убрав каталог корневой" вроде бы так как я понял:
однако при переходе, пишут, что страница не найдена.
Конечно. Нельзя удалять все, что вам не нравится.
Представьте, что вам поручено найти дом с помощью такой строки:
страна=россия&город=москва&улица=ленина&дом=333.
Но ее вид почему-то не нравится поручителям и они решили сократить ее до
р/м/л/333
Все хорошо, дом все равно еще может быть найден.
Но потом они пошли дальше, сократив строку до
м/л/333
Теперь вам пипец! :(
Не будь паразитом, сделай что-нибудь самостоятельно!
*

Karyuudo

  • Захожу иногда
  • 354
  • 0 / 0
Плагин Direct Alias
хотел удалить:
component/tags/tag/
Не удаляет что-то..

jlnodoubles отключил..


нашел выход! нудно создать пункт меню и присвоить ему метки
« Последнее редактирование: 16.11.2015, 00:39:13 от Karyuudo »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Редирект для страницы с добавлением кода языка

Автор zeus07

Ответов: 0
Просмотров: 762
Последний ответ 26.06.2023, 11:25:10
от zeus07
Htaccess и редирект с index.php на без index.php

Автор PavelK

Ответов: 2
Просмотров: 2861
Последний ответ 11.05.2023, 14:31:40
от PaLyCH
Как настроить редирект через маску содержащую часть пути?

Автор Slava77

Ответов: 0
Просмотров: 1210
Последний ответ 18.01.2023, 03:17:15
от Slava77
Редирект - исключение из правил (слэш)

Автор darkghost

Ответов: 0
Просмотров: 1222
Последний ответ 26.08.2022, 12:54:19
от darkghost
Редирект - JShop - слеш в конце URL

Автор darkghost

Ответов: 17
Просмотров: 1713
Последний ответ 16.08.2022, 15:18:30
от darkghost