sairon

Сложная задачка для знатоков настройки редиректов в .htaccess или functions.php

18 сообщений в этой теме

Господа, обращаюсь с нетривиальной задачей, решение которой в гугле не нашел.
Нужно сделать 301 редирект со страниц вида site.ru/abcde/xyz/123 на site.ru/abcde/xyz/ (то есть просто, если в конце url есть цифры - их убрать), при этом не задев урл с "page": site.ru/abcde/page/2 (чтоб оно не редиректило на site.ru/abcde/page/ - и  не склеивало всю пагинацию).

Средствами .htacess или куска кода в functions.php. Движок - Wordpress.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, sairon сказал:

/abcde/ - допустим категория
/xyz/ - название поста

Так, а 123 откуда? Может и редиректов не надо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
45 минут назад, petroff сказал:

Так, а 123 откуда? Может и редиректов не надо

надо) 123 - рождается пагинацией страниц поста) мне нужно склеить  с основной.

Для примера перейдите по homedit. com/off-grid-homes/
А теперь добавь число в конец урл, например homedit. com/off-grid-homes/222
Видите - одинаковые страницы? Они не становятся дублями, только потому, что указан rel canonical.
А я хочу их склеить вообще, средствами редиректов 301., нотак, чтоб пагинация категорий и блога в целом - сохранилась.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, sairon сказал:

123 - рождается пагинацией страниц поста)

1 час назад, sairon сказал:

Видите - одинаковые страницы? Они не становятся дублями, только потому, что указан rel canonical

Бред конечно, canonical это всего лишь тег, ну да ладно. В шпаргалках покопался, попробуйте сделать так для одной из категорий

Чёт нацарапал, но вроде фигня какая-то получилась :D

RewriteRule ^название-категории/([A-Za-z0-9-]+)/([A-Za-z0-9-]+) /название-категории/$1 [R=301,L]

 

sairon понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

попробуйте так (сам не тестил):

RewriteCond %{REQUEST_URI} !^[\w-]+/page/\d+$ [NC]
RewriteCond %{REQUEST_URI} ^[\w-]+/[\w-]+/\d+$ [NC]
RewriteRule ^([\w-]+)/([\w-]+)/\d+$ /$1/$2 [L,R=301]

sairon понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
12 часа назад, petroff сказал:

Бред конечно, canonical это всего лишь тег, ну да ладно. В шпаргалках покопался, попробуйте сделать так для одной из категорий

Чёт нацарапал, но вроде фигня какая-то получилась :D


RewriteRule ^название-категории/([A-Za-z0-9-]+)/([A-Za-z0-9-]+) /название-категории/$1 [R=301,L]

 

Спасибо, попробую. А насчет того, что 'canonical - всего лишь тег' - разумеестя, но этот тег указывает на каноническую страницу, что особенно важно при пагинации и склейке страниц пагинации с основной. Поверьте, если бы его не было, в поиске начали бы появляться страницы вида homedit. com/off-grid-homes/222, homedit. com/off-grid-homes/999 и т д. а так, на каждой странице пагинации 'просто тег' указывает каноническую homedit. com/off-grid-homes/  и в поиске появится только она одна :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, sairon сказал:

Спасибо, попробую. А насчет того, что 'canonical - всего лишь тег' - разумеестя, но этот тег указывает на каноническую страницу, что особенно важно при пагинации и склейке страниц пагинации с основной. Поверьте, если бы его не было, в поиске начали бы появляться страницы вида homedit. com/off-grid-homes/222, homedit. com/off-grid-homes/999 и т д. а так, на каждой странице пагинации 'просто тег' указывает каноническую homedit. com/off-grid-homes/  и в поиске появится только она одна :)

homedit. com/off-grid-homes/222 должна быть 404-ой. Пагинация для страниц постов и страниц на вордпрессе какая-то несвойственная штука. Даже если такую пагинацию допустить, то на этих страницах лучше noindex, nofollow или noindex, follow прописывать через functions.php, а не клеить через htaccess. Просто при склейке смысл пагинации теряется

sairon понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, petroff сказал:

homedit. com/off-grid-homes/222 должна быть 404-ой. Пагинация для страниц постов и страниц на вордпрессе какая-то несвойственная штука. Даже если такую пагинацию допустить, то на этих страницах лучше noindex, nofollow или noindex, follow прописывать через functions.php, а не клеить через htaccess. Просто при склейке смысл пагинации теряется

Эта проблема возникает из-за плагина Yoast Seo. Но отказываться от него в пользу All in one, например, не хочу, в силу других соображений..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
1 час назад, sda сказал:

попробуйте так (сам не тестил):

RewriteCond %{REQUEST_URI} !^[\w-]+/page/\d+$ [NC]
RewriteCond %{REQUEST_URI} ^[\w-]+/[\w-]+/\d+$ [NC]
RewriteRule ^([\w-]+)/([\w-]+)/\d+$ /$1/$2 [L,R=301]

не работает)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я в синтаксисе не силен, но для начала вопрос Как организовать
 

RewriteRule домен/$1/([0-9-]+) домен/$1/ 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Кажется, вы ерундой занимаетесь.

Добавьте цифры на любой вордпресс сайт к адресу любой записи/страницы, получите еще одну страницу.

Вы думаете rel="canonical" дураки придумали? Или вы решили насиловать сервер, прописав в .htacess ВСЕ ВОЗМОЖНЫЕ в мире вариации дублирующего контента?

ТС, а точка или две или три в конце адреса вам тоже смущает? Был тут один уже такой.

sairon понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

RewriteCond %{REQUEST_URI} !^/[\w-]+/page/\d+$ [NC]
RewriteCond %{REQUEST_URI} ^/[\w-]+/[\w-]+/\d+$ [NC]
RewriteRule ^([\w-]+)/([\w-]+)/\d+$ /$1/$2 [L,R=301]
 

 

проверил - так работает. начальные слеши не указал...

sairon понравилось это

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, files сказал:

Кажется, вы ерундой занимаетесь.

Добавьте цифры на любой вордпресс сайт к адресу любой записи/страницы, получите еще одну страницу.

Вы думаете rel="canonical" дураки придумали? Или вы решили насиловать сервер, прописав в .htacess ВСЕ ВОЗМОЖНЫЕ в мире вариации дублирующего контента?

ТС, а точка или две или три в конце адреса вам тоже смущает? Был тут один уже такой.

Цитата

Вы думаете rel="canonical" дураки придумали?

Насчет каноникал - я так не думаю. Разве вы не видели, что я выше про него писал? :
 

Цитата

Спасибо, попробую. А насчет того, что 'canonical - всего лишь тег' - разумеестя, но этот тег указывает на каноническую страницу, что особенно важно при пагинации и склейке страниц пагинации с основной. Поверьте, если бы его не было, в поиске начали бы появляться страницы вида homedit. com/off-grid-homes/222, homedit. com/off-grid-homes/999 и т д. а так, на каждой странице пагинации 'просто тег' указывает каноническую homedit. com/off-grid-homes/  и в поиске появится только она одна 

 

Цитата

Добавьте цифры на любой вордпресс сайт к адресу любой записи/страницы, получите еще одну страницу.

У многих реализовано так. Но не у всех. Пример редиректа таких страниц могу скинуть в личку если хотите. И это не просто помойный ресурс, а ресурс с 40к уников.

 

Цитата

точка или две или три в конце адреса вам тоже смущает?

Нет, не смущает - это же не пагинация. У меня такие страницы итак отдают нужную 404 ошибку, так что не вижу поводов для ёрничества. Свою задачу - я описал.

 

Цитата

Кажется, вы ерундой занимаетесь.

При генерации этих страниц (при переходе по битым ссылкам такого типа, что у меня имеет место быть), и разумеется кешированной версии этих страниц задействуются ресурсы ЦП и, разумеется, дисковое пространство для хранения кеша. Если редиректить их на каноническую - все будет ОК.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, sda сказал:

RewriteCond %{REQUEST_URI} !^/[\w-]+/page/\d+$ [NC]
RewriteCond %{REQUEST_URI} ^/[\w-]+/[\w-]+/\d+$ [NC]
RewriteRule ^([\w-]+)/([\w-]+)/\d+$ /$1/$2 [L,R=301]
 

 

проверил - так работает. начальные слеши не указал...

Спасибо огромное, это то что нужно. Только не могли бы вы немного модернезировать код, чтоб при слеше в конце тоже редиректило так (RewriteRule домен/категория/([0-9-]+)/   домен/категория/ )? Ато повторюсь, я с синтаксисом не дружу в htaccess.... 
 


 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 19.09.2017 в 10:12 PM, sairon сказал:

У многих реализовано так. Но не у всех. Пример редиректа таких страниц могу скинуть в личку если хотите. И это не просто помойный ресурс, а ресурс с 40к уников.

Можете скинуть в личку?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
15 часов назад, Pilot757 сказал:

Можете скинуть в личку?

Отправил пример в ЛС

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!


Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.


Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу