/ / htaccess regularne wyrażenie redirectmatch, aby uniknąć nieskończonej pętli - regex, .htaccess, przekierowanie

htaccess redirectmatch wyrażenie regularne, aby uniknąć nieskończonej pętli - regex, .htaccess, przekierowanie

Mam gdzieś zniekształcony link, który kieruje ludzi do mojej mapy witryny, ale do adresu URL

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

itp. To następnie przedstawia im zepsute linki.

Podczas wyszukiwania złego linku, napisałem 301 tak, aby cały ruch na stronie był 301ed i oczyszczony:

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

Ale to daje mi "zbyt wiele 301s" błędówponieważ witryna.com/sitemap.php pasuje do wyrażenia i zostaje zapętlona. Czy istnieje wyrażenie regularne, którego mogę używać zamiast (. *), Które nie będzie pasować, jeśli w ogóle nic nie ma (np. Czy adres URL kończy się na ".php"?

Odpowiedzi:

1 dla odpowiedzi № 1

Po prostu skorzystaj z tej reguły:

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

I wyczyść pamięć podręczną przeglądarki. Zwróć uwagę na użycie .+ (1 lub więcej dowolnych znaków) zamiast .* (0 lub więcej znaków)