代码之家  ›  专栏  ›  技术社区  ›  mikeytown2

apache mod rewrite-replace:用另一个字符替换

  •  3
  • mikeytown2  · 技术社区  · 15 年前

    我正在尝试将其中包含“:”的所有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

    在消除中间的字符方面。用xammp 1.7.1测试

    2 回复  |  直到 15 年前
        1
  •  3
  •   Gumbo    15 年前

    尝试以下规则:

    RewriteRule ^/([^:]*):([^:]*:.*) /$1_$2 [N]
    RewriteRule ^/([^:]*):([^:]*)$ /$1_$2
    
        2
  •  0
  •   Taylor Leese    15 年前

    这里有一个链接 RewriteRule .

    RewriteRule ^/some[_:]interesting[_:]info$ /some_interesting_info [L]