我在.htaccess
中有以下内容:
RewriteRule ^a/(.+)$ index.php?data=$1 [L]
很简单,适用于大多数情况,除非我使用以下网址:
http://example.com/a/hello%23abc
我希望将data
GET变量设置为hello#abc
,但它会中断。我认为它打破了因为Apache“unescapes”字符,使网址如下:
index.php?data=hello#abc
这可能是为什么它将data
GET变量设置为hello
。
有什么方法可以解决这个问题吗?
感谢。
答案 0 :(得分:2)
使用 [B] 标志应该对您的情况有所帮助(在Apache 2.2中可用)
[B]标志指示 RewriteRule 转义非字母数字 应用转换前的字符。
RewriteRule ^a/(.+)$ index.php?data=$1 [L,B]