我在编写重写地址的规则时遇到了麻烦,例如http://localhost/hello:world到http://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]