我有一些以前使用大写语言的路线,现在我想要低级。 这是一条路线:/ Ka /განცხადებები应该简单地成为/ ka /განცხადებები
在我的conf中 if($ uri~ ^ / K(。+)){ 设置$ bb $ 1; 重写^(。*)$ $ scheme:// $ host / k $ bb permanent; }
我不明白为什么但是 / KA /%E1%83%92%E1%83%90%E1%83%9C%E1%83%AA%E1%83%AE%E1%83%90%E1%83%93%E1%83% 94%E1%83%91%E1%83%94%E1%83%91%E1%83%98 /
成为
/ KA /%E1%83%92%E1%83%90%E1%83%9C%E1%83%AA%E1%83%AE%E1%83%90%E1%83%93%E1 %83%94%E1%83%91%E1%83%94%E1%83%91%E1%83%98
即所有大写字母都变成小写,这会导致我的rails应用程序使用àpb。
有谁知道为什么nginx这样做?是否有可能阻止这个?
我不能只是大写一切,因为有一些拉丁字母,我的路线区分大小写
感谢
答案 0 :(得分:0)
专注于真正的问题。对于您的rails应用程序而言,这不应该是一个问题,因为这些URL是相同的。我怀疑nginx解码了匹配的url,当它必须重写url时,使用小写重新编码它。 此外,除非你真的需要在某个地方使用$ bb变量,否则这可以更轻松地完成:
location ~ ^/K[a-z]/.*$ {
rewrite ^/K([a-z])/(.*)$ /k$1/$2;
}