基本上,我最近在httpd.conf中为IIS服务器上的ISAPI重写添加了以下规则,以确保它始终默认为小写文件名和目录名。

RewriteRule ^(.*[A-Z].*)$ $1 [CL,R=301,L]

除了一个可以称为/MisbehavingDir的目录外,对于网站的每个部分来说,这都是好事,花哨的东西,该目录中的代码充满了大小写混合的文件名以及许多服务器和客户端脚本必须重写以使用所有小写字母才能正常工作(上面的RewriteRule似乎在错误的位置命中了301个,这至少可以说导致该网站的该部分无法正常工作)。

因为我不想重写网站的那一部分,所以我很想找到一种修改上述regex的好方法,以便它匹配除以MisbehavingDir开头的路径之外的所有内容,并且由于我的regex-fu是'我想我要问的是真的不够好。

是否有一个简单的“美丽”解决方案可供任何人共享,或者我应该花几天时间重写该应用程序,然后对其进行测试并经历整个过程?

有帮助吗?

解决方案

好吧,显然,诀窍是添加一个类似于RewriteCond %{URL} ^(?!/MisbehavingDir/.*$)的rewritecond语句,以使ISAPI重写跳过下一条规则。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top