【问题标题】:Apache Mod Rewrite - Replace : character with anotherApache Mod Rewrite - 替换:用另一个字符
【发布时间】:2009-10-02 08:00:04
【问题描述】:

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

【问题讨论】:

    标签: regex apache mod-rewrite


    【解决方案1】:

    试试这些规则:

    RewriteRule ^/([^:]*):([^:]*:.*) /$1_$2 [N]
    RewriteRule ^/([^:]*):([^:]*)$ /$1_$2
    

    【讨论】:

      【解决方案2】:

      这是RewriteRule 的链接。

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

      【讨论】:

      • 这将仅涵盖示例 URL,但不会涵盖所有包含冒号的 URL。
      猜你喜欢
      • 1970-01-01
      • 2014-03-16
      • 2019-02-03
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      • 2019-09-13
      • 2020-02-08
      • 1970-01-01
      相关资源
      最近更新 更多