Autore Topic: [RISOLTO] Rimozione ID dagli URL: formula "jolly" per redirect 301 in .htaccess  (Letto 136 volte)

Offline sgiobbio

  • Esploratore
  • **
  • Post: 137
    • Mostra profilo
In un altra discussione relativa alla funzione di rimozione degli ID dagli URL, con Mastino abbiamo affrontato il problema conseguente, quello del permanent redirect 301 in .htaccess
Rimuovendo gli ID dagli URL di siti di grandi dimensioni, ovviamente gli articoli da reindirizzare saranno tantissimi, anche centinaia.
Impensabile riscrivere in .htaccess tutti gli URL cambiati, ad uno ad uno...

A questo punto domando quale possa essere la giusta sintassi "jolly" da inserire in .htaccess per operare un "redirect massivo".
Mi spiego meglio.
Poniamo che tutti gli indirizzi debbano cambiare così:
da  /999-
a  /
Infatti qualsiasi URL che contenga un ID numerico avrà da qualche parte uno slash seguito da 3 o da 4 numeri e poi da un trattino.
Quindi esisterà una formula jolly che dia istruzione di togliere dall'URL qualsiasi numero di 3 o di 4 cifre che segua a uno slash e di togliere anche il trattino seguente.

Qualcuno sa darmi indicazioni in merito?

Io un'idea ce l'avrei (ma non vorrei compromettere il file .htaccess):

RewriteEngine on
RedirectMatch 301 ^(.*)\/[\d]{3}\-(.*)$ $1/$2
RedirectMatch 301 ^(.*)\/[\d]{4}\-(.*)$ $1/$2
« Ultima modifica: 16 Mag 2019, 17:42:17 da sgiobbio »

Offline danielecr

  • Abituale
  • ****
  • Post: 1236
    • Mostra profilo
Prova questo, rimuove qualsiasi blocco di 3 o 4 numeri seguiti da "-" dall'url e li redireziona alla versione senza (quindi anche se avessi url con numero-categoria/numero-articolo rimuove sia il blocco della categoria sia il blocco dell'articolo):

Codice: [Seleziona]
RewriteEngine On

RewriteCond %{REQUEST_URI} (.*)/[\d]{3,4}-(.*) [NC]
RewriteRule .*  %1/%2  [R=301,L]

Offline sgiobbio

  • Esploratore
  • **
  • Post: 137
    • Mostra profilo
Sembra funzionare alla perfezione.
Grazie danielecr per la preziosa consulenza.

 

Host

Torna su