/ / htaccess redirectmatch espressione regolare per evitare loop infinito - regex, .htaccess, reindirizzamento

htaccess redirectmatch espressione regolare per evitare loop infinito - regex, .htaccess, reindirizzamento

Ho un link malformato da qualche parte che manda le persone alla mia sitemap ma ad un URL come

www.example.com/sitemap.php""abc def

ecc. Questo poi li presenta con collegamenti interrotti.

Mentre rinuncio al collegamento errato, ho scritto un 301 come questo per far sì che tutto il traffico verso la pagina sia 301ed e ripulito:

RedirectMatch 301 ^sitemap.php(.*) http://www.example.com/sitemap.php

Ma questo mi dà errori "troppi 301"perché site.com/sitemap.php corrisponde all'espressione e viene ripetuto. Esiste un'espressione regolare che posso usare al posto di (. *) Che non corrisponde se non c'è niente (cioè se l'URL termina con ".php"?

risposte:

1 per risposta № 1

Usa questa regola:

RedirectMatch 301 ^/(sitemap.php).+ /$1

E svuota la cache del browser. Nota l'uso di .+ (1 o più di qualsiasi carattere) anziché .* (0 o più caratteri)