如何在.htaccess文件中使用空格和非ascii字符

时间:2010-09-22 12:03:03

标签: .htaccess

在.htaccess imposibla中使用空格,非拉丁字符等? 例如,如何解决这个问题:

RewriteRule ^/(.*)/new user/(.*)$ /page/?id=$1 [QSA,L,E]

这个决定不是我:

... /new_user/ ...

由于

3 个答案:

答案 0 :(得分:1)

你必须使用百分比编码来转义URI的保留字符及其各自的字符代码,例如: G。 %20为空间。

有关详细信息,请参阅http://en.wikipedia.org/wiki/Percent-encoding

答案 1 :(得分:0)

确定..在网址中允许的标志: http://www.blooberry.com/indexdot/html/topics/urlencoding.htm 并在htaccess:

RewriteRule ^(([0-9]+)-)?new_user(-([0-9]+))?/?$   new_user.php?page=$2&id=$4 [L] 

更改www.blabla.com/10-new_user-5
www.blabla.com/new_user.php?page=10&id=5

答案 2 :(得分:0)

在您的规则操作之前,URL会自动解码,因此您可以针对文字字符进行测试,例如: français\ español(请注意,除非引用模式,否则需要使用反斜杠转义文字空格。)

但是,根据您的示例,我认为您实际关注的是能够执行以下操作:

RewriteRule ^([^/]+)/[^/]+/.*$ /page/?id=$1 [QSA,L]
#                    ^---^
#                       it doesn't matter what the user name is, as long as it
#                       doesn't contain a slash