Изменить и удалить часть URL с редиректом 301 (htaccess)

Я преобразовал веб-сайт Joomla в WordPress. URL-адреса статей Joomla имеют /blog/<RandomNumber>-slug. Например:

example.com/blog/164-postname

example.com/blog/214-anotherpostname

Мне нужно удалить /blog/164-postname из URL, чтобы он перенаправлял на example.com/postname

Также есть некоторые URL-адреса категорий продуктов в этом формате:

example.com/category/<RandomNumber>-slug

Например:

example.com/category/12-catname 

Я хочу перенаправить эти URL-адреса, изменив category на product-category и удалив цифры и символ -, чтобы упомянутый URL-адрес перенаправлял на example.com/product-category/catname с кодом 301.

Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
20
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте следующее в верхней части вашего корневого .htaccess файла, используя mod_rewrite:

# Redirect "/blog/123-postname" to "/postname"
RewriteRule ^blog/\d+-([\w-]+)$ /$1 [R=301,L]

# Redirect "/category/123-catname" to "/product-category/catname"
RewriteRule ^(category)/\d+-([\w-]+)$ /product-$1/$2 [R=301,L]

Обратные ссылки $1 и $2 содержат совпадение из заключенных в скобки подшаблонов в предыдущем RewriteRuleшаблон.

Сначала проверьте с 302 (временной) переадресацией, чтобы избежать потенциальных проблем с кэшированием.

Другие вопросы по теме

.htaccess, могу ли я заблокировать все запросы, начинающиеся именно с "/index.php?action="
Отрицательное предварительное регулярное выражение для файлов cookie заголовка мода apache — сохранить определенные файлы cookie
Условие перезаписи htaccess, использующее регулярное выражение
403 запрещено при попытке открыть веб-страницу на сайте с другого сайта
Как перенаправить все запросы к файлу PHP внутри подкаталога в apache2?
В Apache, как сделать внешнее перенаправление на версию URL-адреса без косой черты с файлом подпапки .htaccess
Перенаправлять многочисленные динамические URL-адреса на домашнюю страницу через .htaccess
Как сделать подпапку недоступной, а файлы невозможно загрузить из корневого каталога с помощью htaccess?
Как ограничить доступ к URL-адресу/суб-адресу на основе ip?
Почему я получаю ошибку 404 в HostGator или почему я больше не могу вызывать PHP из файлов HTML?