Dynami c htaccess перенаправляет в WordPress - PullRequest
0 голосов
/ 07 февраля 2020

Я ищу решение для массового перенаправления 301 в WordPress. Я рассмотрел некоторые распространенные перенаправления htaccess, но не могу найти правильное решение для того, что мне нужно.

Текущий формат URL:

website.com/year/month/post-name (e.g website.com/2020/02/post-name)

Формат Я бы нравится достигать:

website.com/blog/post-name

Слаг после публикации всегда будет оставаться неизменным, это только первая часть URL, которая нуждается в корректировке.

1 Ответ

3 голосов
/ 07 февраля 2020

Вы можете сопоставить формат URI запроса, например year/month/post-name, с регулярным выражением в RewriteCondition и иметь для него правило перезаписи, если URI запроса соответствует.

Фрагмент:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^\/?\d+\/\d+\/.+ [NC]
RewriteRule ^\d+\/\d+\/(.+) http://website.com/blog/$1 [NC,L,QSA]

Демонстрация: https://htaccess.madewithlove.be?share=f2c421fe-e23d-50a9-8988-9a7bac647951

В приведенном выше правиле мы выполняем сопоставление без учета регистра и собираем часть post-name в группе 1 регулярного выражения, (.+). Теперь мы добавим это в наш URL перенаправления с $1, где 1 - это номер группы (так как номер группы 0 - это само регулярное выражение).

Обновление:

Вы можете добавить R сигнал перенаправления с кодом состояния 302 , если это временное перенаправление или постоянное перенаправление 301 (которое будет обновлен и в механизмах сканирования SEO).

Для этого вы можете изменить правило перезаписи с

RewriteRule ^\d+\/\d+\/(.+) http://website.com/blog/$1 [NC,L,QSA]

на

RewriteRule ^\d+\/\d+\/(.+) http://website.com/blog/$1 [R=302,NC,L,QSA]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...