/ / htaccess redirectmatch regulärer Ausdruck zur Vermeidung von Endlosschleifen - Regex, .htaccess, Redirect

htaccess redirectmatch regulärer Ausdruck, um Endlosschleife zu vermeiden - regex, .htaccess, redirect

Ich habe irgendwo einen fehlerhaften Link, der Leute zu meiner Sitemap, aber zu einer URL wie

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

usw. Dies zeigt ihnen dann defekte Links an.

Während ich den fehlerhaften Link ausfindig mache, habe ich eine 301 wie diese geschrieben, damit der gesamte Verkehr auf der Seite 301bereinigt und bereinigt wird:

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

Aber das gibt mir eine "zu viele 301s" Fehlerweil site.com/sitemap.php mit dem Ausdruck übereinstimmt und eine Schleife erstellt wird. Gibt es einen regulären Ausdruck, den ich anstelle von (. *) Verwenden kann, der nicht übereinstimmt, wenn überhaupt nichts vorhanden ist (dh wenn die URL nur mit ".php" endet?

Antworten:

1 für die Antwort № 1

Verwenden Sie einfach diese Regel:

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

Und leeren Sie Ihren Browser-Cache. Beachten Sie die Verwendung von .+ (1 oder mehr Zeichen) anstelle von .* (0 oder mehr Zeichen)