Среда, 2 декабря, 2009 года

Наводим красоту в урлах




 

Каждый вебмастер может спеть песню о проблеме отсутствующих завершающих слэшей при использовании URL ссылающихся на категории, теги и рубрики. Немного на эту тему.
Столкнулся на днях с проблемкой.
Понадобилось включить ЧПУ и настроить пермалинк в Вордпресс. Мне нужна была такая структура:

site.ru/rubrika/
site.ru/rubrika/stranica.php
site.ru/metki/
site.ru/avtor/stranica.php
site.ru/rubrika/podrubrika/
site.ru/rubrika/podrubrika/stranica.php

Настраивается это элементарно. Формированием ссылок в WordPress ведает модуль ЧПУ.

Начнем, ставим три плагина:

Permalink Redirect — необходим для того чтобы сделать редирект вашим ссылкам уже опубликованных статей на новые ссылки.

RusToLat — вместо %D2%E5%F1%F2 в урлах вы получаете латинские буквы test

Page_Htm – добавляет к ссылкам статичных страниц .html или, что пропишите, в моем случае — .php

Далее, делаем следующее:

Идем в Админ-панель/Настройки/Постоянные ссылки ЧПУ/ В опции Произвольная структура/ вписываем:
/%category%/%postname%.php.

В Админ-панеле/Настройки/Постоянные ссылки ЧПУ/Дополнительно/Страницы категории вписываем:
/%category%/

И все хорошо и красиво работает, но …
WP упорно убирает слеш в конце категорий- рубрик — site.ru/rubrika меня это напрягает (не нравится). Кто то скажет — Разве ж это проблема? Снобизм 🙂
Пусть так. Но я считаю, что /rubrika — это файл, а /rubrika/ — каталог (директория). И в конце-концов — все должно быть красиво.
Начал рыть поиск, а там одни обсуждения нужен он, слеш, или не нужен. Спор о том нужен он или нет, меня не занимает, мне не нравится вид url без него и точка.

В итоге, после долгого блуждания по просторам инета, нашел пару плагинов — permalink-trailing-slash-fixer и Smart Trailing Slash.
Поставил — permalink-trailing-slash-fixer. Работа плагина сводится к добавлению завершающего слеша к рубрики, подрубрикам, теги, категориям.
Настройки плагин не требует. Скачал, распаковал, залил в папку плагинов и активировал в админке.
По идее, все тоже самое можно сделать и в .htaccess, но было поздно и хотелось спать. Поэтому пошел по пути наименьшего сопротивления.

Собственно все, может кому и пригодится 🙂

 
Спонсор статьи:
 

 




 

6 комментариев на “Наводим красоту в урлах”

  1. Valeriy Пишет:
    20 января, 2011 в 14:44

    Офигеть!!! Да Вы просто МегаГуру! Я ответ на вопрос о том, как поставить закрывающий слеш в конце рубрик, периодически искал на протяжении года!

    Все предлагали решить проблему, в ЧПУ указав /%postname%/, но тогда не удается добавить окончание html. Конечно, можно обходиться и без этого, архаичного окончания. Но начинаю новый, коммерческий проект, и там у меня могут пересекаться названия статей, рубрик, и тегов. А при 100%-ом совпадении адреса, переход по ссылке происходит только по одной, наиболее весомой. Так что во избежание неприятных неожиданностей сразу нужно все разграничить.

    Даже когда я писал вопросы знатным блоггерам, специализирующимся на сео и подобном, все отвечали, что «не знают», «плагинов таких под ВордПресс» нет, «надо дорабатывать исходный код самого WP»... Я уже думал, что такое на WP не возможно, по каким-то техническим причинам. А тут на днях нашел блог WP, где слеш в конце рубрик есть!!! Ну, думаю, если кто-то один сделал, то наверняка сделать это можно, и вновь принялся за поиски. И НАКОНЕЦ-ТО НАШЕЛ ОТВЕТ! СПАСИБО!!!

  2. you too Пишет:
    20 января, 2011 в 16:23

    Рад, что помог. Спасибо за добрые слова 🙂

  3. Александр Пишет:
    29 июня, 2011 в 13:46

    Дай бог тебе здоровья за этот пост 🙂

    Самого отсутствие слэша бесило.

  4. you too Пишет:
    29 июня, 2011 в 22:43

    И Вам на здоровье. Рад, что моя писанина кому-то пригодилась 🙂

  5. RichMan Пишет:
    18 ноября, 2011 в 08:31

    у кого что) мне бы избавиться от слэша, который каким то образом появился в конце урлов категорий.

  6. NerZool Пишет:
    20 февраля, 2012 в 23:26

    Поубивал бы ньюфагов, доказывающих, что слэш в конце адреса категории не нужен. Сегодня очень удивился тому факту, что в WP простое и логичное:

    RewriteRule ^[^/.]+$ $0/ [R=301,L]

    Приводит к ошибке циклической переадресации.

    Спасибо за избавление от длительных поисков решения. Да здравствует олдскул!

Оставьте комментарий!

Записи в RSS и Комментарии в RSS.