Apache 重写规则与冒号 (:) 不匹配

Apache 重写规则与冒号 (:) 不匹配

我在编写重写地址的规则时遇到了麻烦,例如http://localhost/hello:worldhttp://localhost/hello/world.html

我在httpd.conf中的RewriteRule如下:

<Directory "D:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs">
     Options Indexes FollowSymLinks
     AllowOverride None
     Order allow,deny
     Allow from all

     RewriteEngine On
     RewriteBase /
     RewriteRule ^hello:world$ /hello/world.html [L,QSA] #Doesn't work
     RewriteRule ^hello_world$ /hello/world.html [L,QSA] #Works great!
 </Directory>

当我尝试http://localhost/hello:world,我收到 403 禁止页面。

特别值得注意的是,规则

RewriteRule ^hello_world$ /hello/world.html [L,QSA]

很好用http://localhost/hello_world

我在Windows Server 2008下使用Apache2.2。

我该如何重写规则来匹配冒号?

答案1

如有疑问,请立即逃离

RewriteRule ^hello\:world$ /hello/world.html [L,QSA]

相关内容