удалить ID из URL в htaccess

удалить ID из URL в htaccess

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

У меня есть этот URL:

http://[DOMAIN]/[category]/27466-some-article-is-here

Что должно перенаправить на этот URL:

http://[DOMAIN]/[category]/some-article-is-here

Я просто хочу удалить ID из URL. Категория может быть любой, которую я хочу сохранить.

Как этого добиться?

ОБНОВЛЕНИЕ: Я изменил перенаправление с @taduuda на это:

RewriteRule ^(.*)\/[\d]*\-(.*)$ $1/$

Это выглядит хорошо с помощью инструмента тестирования, но все еще не работает на моем сайте WordPress.

Мой htaccess:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# BEGIN - Custom Redirects
RedirectMatch 301 /heute(.*) /$1
RewriteRule ^(.*)\/[\d]*\-(.*)$ $1/$2
# END - Custom Redirects

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>
# END WordPress

решение1

Не уверен, что это сработает с каждым URL, который у вас есть, но это даст вам базу для работы. Обратите внимание, что это специально проверяет 5-значные идентификаторы. Если вы хотите, чтобы это было более гибко, просто измените {5}на другой квалификатор, например *. Также обратите внимание, что это может соответствовать URL, которые вы не хотите перенаправлять.

* Квантификатор — Соответствует от нуля до неограниченного количества раз, столько раз, сколько возможно, возвращая по мере необходимости (жадный)

Ваше правило:

RewriteEngine on
RedirectMatch 301 ^(.*)\/[\d]{5}\-(.*)$ $1/$2

Или более точный вариант, чтобы избежать нежелательных перенаправлений:

RewriteEngine on
RedirectMatch 301 ^(.*example\.com\/.+)(?:\/[\d]{5})\-(.*)$ $1/$2

Поскольку вы упомянули, что вы новичок в регулярных выражениях, вот несколько инструментов, которые помогут вам начать работу:

Онлайн-инструмент для создания/тестирования регулярных выражений:regex101.com

Онлайн-инструмент тестирования перезаписи .htaccess:htaccess.madewithlove.be

Связанный контент