我有一个网址,这就好比http://example.com/UK/Deal.aspx?id=322如何从URL检索语言环境(国家)代码?
我的目标是消除区域(国家)的部分,使它像http://example.com/Deal.aspx?id=322
由于URL可能有其他类似的格式,如:https://ssl.example.com/JP/Deal.aspx?id=735,使用“子串”功能不是一个好主意。
我能想到的是使用下面的方法将它们分开,然后再映射它们。
HttpContext.Current.Request.Url.Scheme
HttpContext.Current.Request.Url.Host
HttpContext.Current.Request.Url.AbsolutePath
HttpContext.Current.Request.Url.Query
而且,假设HttpContext.Current.Request.Url.AbsolutePath将是:
/UK/Deal.aspx?id=322
我不知道如何处理这一点,因为我的老板问我要不要用“一般表达“(他认为这将影响性能...)
除了” 正则表达式”,有没有其他的方法来消除英国从它?
P.S。得到:UK部分可以是JP,DE,或其他国家代码。
顺便说一句,对于美国,没有国家代码,将URL http://example.com/Deal.aspx?id=322
也请把这种情况考虑在内。 谢谢。
你为什么要删除并映射回来?是否因为语言环境自动从您的网站访问来自不同地区或国家的网站?如果是的话,那么可能会有另一种解决方案。 – vendettamit
Hi @vendettamit,实际上我的网站在这些日子里增加了“多区域”,如果有额外的“国家代码”,我的遗留网址相关方法将无法正常工作。在尝试使用这些遗留方法之前,我尝试从URL(带有国家/地区代码)中删除“国家代码”,并在处理后将其映射回。 – user3174976
Gotach !!如果URL段在根目录后有2个字母的ISO代码作为第一个ocurrance,您可以使用一个小的正则表达式来匹配。 @ user3174976看到我更新的答案。 – vendettamit