区分大小写的URL

时间:2016-03-06 08:23:02

标签: regex url configuration struts2 sitemesh

我已经推出了一个小网站。

我发现我收到了用户的错误,经过调查后发现他们尝试使用的网址都是小写的,而我已将它们声明为camelCase。

我不知道为什么这些用户应该尝试使用所有小写字母(我无法想象有人会花时间改变:

www.mysite.com/myAction.do

www.mysite.com/myaction.do

然而,我无法想到否则会改变这种情况。有没有其他人经历过这样的地方:

然后,用户会尝试将您的映射文件中的yourAction.do作为youraction.do进行访问吗?

我使用的是Struts2.3.1,sitemesh 2.4.2 - 我从来没有听说过或遇到过这样的情况,如果你们中的任何人遇到过这种情况,我会想知道可能导致这种情况的建议类似。

是否有任何浏览器将camelCase.do重新映射到camelcase.do?无论出于何种原因。

唯一的解决方案'我能想到(两个非常丑陋和不优雅的解决方法中最好的)是复制struts.xml中的动作映射

<action name="myAction" class="myActionClass" />
<action name="myaction" class="myActionClass" /> //added extra but what a 'dumb' solution

修改

是否可以对方法做同样的事情?

那样:

myAction!clear.do

仍将使用以下网址正确映射:

myaction!clEAr.do 

我注意到从重新阅读我的错误日志中发现了错误的案例&#39; ULR中导致大多数错误的方法。

1 个答案:

答案 0 :(得分:2)

您可以将regex模式匹配器与(?i)一起用于&#34;嵌入&#34;正则表达式主体中的匹配标志。例如

<constant name="struts.patternMatcher" value="regex" />

<action name="{(?i)myaction}" class="myActionClass" />