remova o ID do URL no htaccess

remova o ID do URL no htaccess

Tentei fazer isso sozinho, mas sou um novato em regex.

Eu tenho este URL:

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

Que deve redirecionar para este URL:

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

Quero simplesmente remover o ID do URL. A categoria pode ser qualquer coisa que eu queira manter.

Como faço para conseguir isso?

ATUALIZAÇÃO: ajustei o Redirecionamento do @taduuda para isto:

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

Isso parece bom com uma ferramenta de teste, mas ainda não funciona no meu site wordpress.

Meu 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

Responder1

Não tenho certeza se isso funcionará com todos os URLs que você possui, mas isso lhe dará uma base para trabalhar. Observe que isso verifica especificamente IDs de 5 dígitos. Se você quiser que isso seja mais flexível, basta mudar {5}para um quantificador diferente, como *. Observe também que isso pode corresponder a URLs que você não deseja redirecionar.

* Quantificador — Corresponde entre zero e vezes ilimitadas, quantas vezes for possível, retribuindo conforme necessário (ganancioso)

Sua regra:

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

Ou uma variante mais precisa para evitar redirecionamentos indesejados:

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

Como você mencionou que é novo em regex, aqui estão algumas ferramentas que ajudarão você a começar:

Ferramenta online de construção/teste de Regex:regex101.com

Ferramenta online de teste de reescrita de .htaccess:htaccess.madewithlove.be

informação relacionada