Вы можете использовать mod_rewrite для выполнения этой замены, см. Этот пример для <
:
RewriteCond %{QUERY_STRING} ^([^<]*)<([^<]*)<(.*)
RewriteRule ^ %{REQUEST_URI}?%1<%2< [N]
RewriteCond %{QUERY_STRING} ^([^<]*)<([^<]*)$
RewriteRule ^ %{REQUEST_URI}?%1<%2 [L]
Первое правило заменит два <
символа за раз, а второе завершит рекурсию. Другие символы можно заменить таким же образом (просто замените <
и <
другими парами).
Но использование mod_rewrite для такой работы не очень подходит, потому что
- mod_rewrite позволяет заменять только фиксированное количество вхождений за раз и
- количество замен ограничено внутренним счетчиком перенаправления, который используется, чтобы избежать бесконечной рекурсии.
Хотя второе утверждение в этом случае не применяется из-за использования флага N , , я бы не рекомендовал использовать mod_rewrite для такого рода работы .
Я бы порекомендовал сделать это в веб-приложении, возможно, непосредственно перед тем, как поместить свои данные в документ HTML, а не профилактически для каждого ввода независимо от того, как эти данные обрабатываются.