区分大小写 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" />
我开通了一个小网站。
我发现我收到了用户的错误,经过调查发现他们尝试使用的 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" />