/ / htaccess redirectmatch регулярний вираз, щоб уникнути нескінченного циклу - regex, .htaccess, redirect

htaccess redirectmatch регулярний вираз, щоб уникнути нескінченного циклу - regex, .htaccess, redirect

Десь у мене неправильне посилання, яке надсилає людей до моєї мапи сайту, але за такою URL-адресою

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

Потім це надає їм розірвані зв’язки.

Поки я шукаю погане посилання, я написав такий собі 301, щоб весь трафік на сторінці був 301ed та очищений:

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

Але це дає мені "занадто багато помилок 301s"тому що site.com/sitemap.php відповідає виразу, і він стає циклічним. Чи є регулярний вираз, який я можу використовувати замість (. *), Який не буде відповідати, якщо там взагалі нічого немає (тобто якщо URL-адреса просто закінчується на ".php"?

Відповіді:

1 для відповіді № 1

Просто використовуйте це правило:

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

І очистіть кеш браузера. Примітка використання .+ (1 або більше будь-якого символу) замість .* (0 або більше знаків)