Я пытаюсь переписать все URL-адреса, содержащие «:», на другой символ. http://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words
Примере:
http://example.com/some_interesting:info
http://example.com/some_interesting_info
http://example.com/some:interesting:info
http://example.com/some:interesting_info
Все будут указывать на этот файл
some_interesting_info
Как я могу это сделать?
РЕДАКТИРОВАТЬ: провел больше испытаний
Это работает
RewriteRule ^(.*)_(.*) $1$2 [L]
RewriteRule ^(.*)\_+(.*) $1$2 [L]
Test_rewrite.html переходит в testrewrite.html
Это не
RewriteRule ^(.*):(.*) $1$2 [L]
RewriteRule ^(.*)\:+(.*) $1$2 [L]
Test:rewrite.html дает 403
С точки зрения устранения персонажа в середине. Протестировано с xampp 1.7.1
2 ответа
Попробуйте эти правила:
RewriteRule ^/([^:]*):([^:]*:.*) /$1_$2 [N]
RewriteRule ^/([^:]*):([^:]*)$ /$1_$2
Вот ссылка на RewriteRule.
RewriteRule ^/some[_:]interesting[_:]info$ /some_interesting_info [L]
Похожие вопросы
Связанные вопросы
Новые вопросы
regex
Регулярные выражения предоставляют декларативный язык для сопоставления шаблонов в строках. Они обычно используются для проверки строк, разбора и преобразования. Укажите язык (PHP, Python и т. д.) или инструмент (grep, VS Code, Google Analytics и т. д.), который вы используете. Не размещайте вопросы, требующие объяснения того, что означает символ или чему будет соответствовать конкретное регулярное выражение.