anru

anru
Рейтинг
78
Регистрация
20.09.2007
serezka:
Ну, если не поднимать вопрос о htm и html, то я всегда ставлю вариант 1.

( /%category%/%postname%.html )

Есть-ли смысл менять - не уверен, т.к. адреса всех страничек - поменяются. нужно-ли это вам...

*.HTML даже не рассматриваем. Вопрос в том - с *.htm или вообще без него?

И в адресе участвуют символы из заголовка постов или цифровой короткий ID, что сократит длину ссылки.

---------- Добавлено 06.11.2016 в 18:54 ----------

Ingref:
anru, любой из 4-х вариантов подошёл бы, если бы вы только проектировали структуру сайта. Если сайт уже проиндексирован и трафик терять не хочется, то забейте на урлы.

Сайту 8 лет.

Трафик на уровне 200-300 посетителей в сутки и не растет.

Смена структуры сайта повлияет на увеличение посещаемости?

Цель смены структуры - показать поисковикам наличие тематических разделов на сайте.

Сейчас все URL в корне сайта - думаю, что поисковики видят сборную солянку, а не информацию структурированную по темам.

Вся информация структурирована - 100 рубрик без повторов в названиях, описаниях и именах разделов.

P.S. Все записи по старым адресам будут доступны после смены структуры - проблема с редиректом уже решена.

egos:
Внешнее – это обычное перенаправление по протоколу HTTP.

Если вы сами напишете одно такое перенаправление в файле .htaccess, да еще WP сделает перенаправление после вашего, получится уже два. Если же вы напишете внутреннее, а WP его поймет и сделает только одно внешнее – это оптимально. Я ранее сомневался, что WP распознает внутреннее, но по крайней мере установленная у меня версия WP с этим справляется.

NC - отключает проверку регистра символов - учитывая то, что у нас только цифры в ID, флаг не актуален.

QSA - с этим флагом непонятно - добавляет исходные параметры запроса (query string) к замене. Можете пример параметров показать? Для чего нужен этот флаг?

egos:

Можно еще добавить флаг NC и, возможно, QSA, сделать более точным регулярное выражение.

Если речь идет о внешнем перенаправлении, то его можно написать еще выше, сразу после директивы RewriteEngine.

Что значит "внешнее перенаправление"?

Как лучше?

Чтобы правильно работало и с поисковиками проблем не было...

egos:
Посмотрите мой последний пост. В установленной у меня версии WP работает и внутреннее перенаправление. Это более оптимальный вариант, т.к. не происходит двойное внешнее перенаправление:
RewriteRule ^(\d+)\.htm$ index.php?p=$1 [L]

Только для чистоты эксперимента не забудьте очистить кэш браузера.

Сейчас задал вопрос в разделе "Оптимизация сайта" - структура для блога Wordpress.

Ожидаю ответ специалистов по оптимизации и продолжу эксперимент.

Думаю, что Ваш вариант будет работать.

P.S. Я просто писал в начале файла .htaccess предложенный Вами код - не надо больше никаких команд до и после кода?

Проблема решена!

Как и написал egos

Не знаю, почему раньше не работало - были какие-то глюки...

Как решил проблему?

Задача:

С структуры /%post_id%.htm сделать записи доступными после смены структуры блога

на /%category%/%postname%

Решение задачи:

1. В самом начале файла .htaccess пишем код, который предложил egos

RewriteRule ^(\d+)\.htm$ /?p=$1 [R=301,L]

2. В настройках блога "Постоянные ссылки" прописываем /%category%/%postname%

egos:
1. Написал в личном сообщении.
2. Нужно отследить по таблицам базы данных связь между идентификатором поста и слагом категории этого поста, чтобы извлечь слаг для использования в целевом адресе при перенаправлении.

Посмотрел статью. Дело в том, что перенаправление с адресов формата /%post_id%.html на адреса формата /%postname%.html делает сам wordpress без проблем.

Задача в другом!

Сделать доступными записи по старым адресам - после смены структуры сайта.

По новому адресу /%category%/%postname%.htm - будет сам wordpress показывать

А со старых адресов /%post_id%.html - надо сделать глобальный редирект на новые записи.

Как это вижу?

С адреса /?p=%post_id% wordpress сам определяет нахождение поста в любой структуре сайта.

Значит, надо сделать редирект со старых постов /%post_id%.html на /?p=%post_id%

и wordpress определит нахождение записи в новой структуре.

SeVlad:
А что, разве ВП сам не перенаправит с такого? (с /%post_id%/ перенаправляет точно)
Версия какая?

ЗЫ. Уж если менять урлы - самое время избавится от 5ти лишних символов аппендицита .html

Wordpress перенаправляет. Проблема в другом

После смены структуры сайта - страницы по старым адресам недоступны

Надо сделать перенаправление для старых адресов на новые адреса страниц

---------- Добавлено 05.11.2016 в 18:52 ----------

egos:
Например так:
RewriteRule ^(\d+)\.htm$ /?p=$1 [R=301,L]


Я позавчера по мотивам вашей темы написал статью о перенаправлении со сменой post_id на postname – все работает. Как появится немного свободного времени, может, и с категориями сделаю – нужно посмотреть, как они связаны с постами.

1. Адрес статьи?

2. В этом и проблема - как прописать в цепочке универсальную команду для подстановки категории, как для %post_id%

egos:
Можно хаком по маске ^\d+\.htm$ в .htaccess – решение с перенаправлением на /%postname%.htm я уже вижу. На /%category%/%postname%.htm скорее всего будет не намного сложнее, просто я с WP не очень хорошо знаком (поля id и post_name когда-то видел в таблице постов, а вот про категорию что-то не вспомню, но какая-то связь в любом случае должна быть).

Как правильно прописать перенаправление?

с адреса https://prodaga.com/%post_id%.htm

на адрес https://prodaga.com/?p=%post_id%

Думаю, что такой редирект сделает все записи доступными

altezzik:
Плагин делает редирект по id записи:
https://wordpress.org/plugins/change-permalink-helper/

Установил

Активировал

Сменил структуру ссылок

По старым адресам записи недоступны :(

Отличный инструмент!

Настроил автоматическую рассылку подписчикам при добавлении новых записей на сайт

13% в среднем переходов с каждой рассылки

После установки SSL-сертификата на сайт - подписка еще лучше работает - без дополнительных всплывающих окон.

Достаточно пользователю нажать кнопку РАЗРЕШИТЬ - без сертификата показывается дополнительное окно.

Не надоедает посетителям - Если жмет ЗАПРЕТИТЬ, то больше окно не показывается на других страницах с предложением подписаться

Всего: 136