Я пытаюсь переписать все 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

3
mikeytown2 28 Авг 2009 в 10:22

2 ответа

Попробуйте эти правила:

RewriteRule ^/([^:]*):([^:]*:.*) /$1_$2 [N]
RewriteRule ^/([^:]*):([^:]*)$ /$1_$2
3
Gumbo 28 Авг 2009 в 11:10

Вот ссылка на RewriteRule.

RewriteRule ^/some[_:]interesting[_:]info$ /some_interesting_info [L]
0
Taylor Leese 29 Авг 2009 в 22:01
Это будет охватывать только примеры URL-адресов, но не все URL-адреса, содержащие двоеточие.
 – 
Gumbo
28 Авг 2009 в 13:19