2017-08-18 62 views
1

我已经创建了一个ASP.net应用程序,在那里我改变了它的查询字符串的语言基础。 我有两台服务器都是HTTPS,而是一个由NetScaler的ASP.net不捕捉QueryString

https://testMyLiveCode.com 
https://myNetscalerServer.com/testapply-aU4uC6Q9dU94nHzVZA6zdtaQE433Xa2a/? 

重定向对于如

https://testMyLiveCode.com/?ln=en

这是我的asp.net代码是什么我其实

string strNewLanguage = Request.QueryString["ln"].ToLower(); 
SessionHelper.Language = strNewLanguage ; 
string strNewURL = Request.RawUrl.ToLower().Replace("ln=" + Request.QueryString["ln"], ""); 
Response.Redirect(strNewURL); 

做的是根据查询字符串更改语言并更改查询字符串并重定向

这跟我的HTTPS服务器

https://testMyLiveCode.com/?ln=en

完美的作品,但我的NetScaler的URL这行不通

https://myNetscalerServer.com/testapply-aU4uC6Q9dU94nHzVZA6zdtaQE433Xa2a/? 

这是我的网址

后,我加入的查询字符串给它,它不起作用 https://myNetscalerServer.com/testapply-aU4uC6Q9dU94nHzVZA6zdtaQE433Xa2a/??ln=en

任何人都可以帮助为什么这不工作,因为该网址已经有一个?在里面??? 感谢您的帮助

+1

'的https://myNetscalerServer.com/testapply-aU4uC6Q9dU94nHzVZA6zdtaQE433Xa2a/'你已经aquestion关口?结束 ?? –

+0

只用一个'?'试过???? –

+0

雅试过只有一个它显示错误 –

回答

0

我的建议是要改变字符串包含“?”,这你不能那么下面的指令和代码可以帮助你 我基于阵列的语言写上下面的代码,你需要修改这根据您的需要,希望这将help.It的恶意代码,你必须修改这个让这个好

string[] obj = new string[5] {"hi","en","ar","or","xy" };    
     string urlString = Request.RawUrl.ToLower(); 
     int location = 0; 
     for (int i = 0; i < obj.Length; i++) 
     { 
      if (urlString.Contains("=" + obj[i])) 
      { 
       location = i; 
       break; 
      } 
     } 
     string strNewURL = Request.RawUrl.ToLower().Replace("ln=" + obj[location], ""); 
     Response.Redirect(strNewURL);