区分大小写 URL

Case Sensitive URL

我开通了一个小网站。

我发现我收到了用户的错误,经过调查发现他们尝试使用的 url 都是小写的,而我将它们声明为驼峰式。

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

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?无论出于何种原因。

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

中的动作映射
<action name="myAction" class="myActionClass" />
<action name="myaction" class="myActionClass" /> //added extra but what a 'dumb' solution

编辑:

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

这样:

myAction!clear.do

仍将正确映射到 URL:

myaction!clEAr.do 

?

我重新阅读错误日志后发现,导致大多数错误的是 ULR 中的 'wrong case' 方法。

您可以将 regex 模式匹配器与 (?i) 到 "embed" 正则表达式正文中的匹配标志一起使用。例如

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

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