基本上我最近在我的httpd.conf中为IIS服务器上的ISAPI重写添加了以下规则,以确保它始终默认为小写文件和目录名。
RewriteRule ^(.*[A-Z].*)$ $1 [CL,R=301,L]
除了我们可以调用/MisbehavingDir
的一个目录外,这对网站的每个部分都很好,但是这个目录中的代码充满了大小写的文件名和大量的服务器和客户端 - 为了正常工作,必须重写所有小写的旁边脚本(上面的RewriteRule似乎在错误的位置击中了几个301s,这导致网站的这部分功能很差,至少可以说)。
由于我没有心情重写网站的这一部分,我很乐意找到修改上述正则表达式的好方法,以便它匹配除MisbehavingDir开头的路径之外的一切,因为我的正则表达式不是我真的很好,我想我会在这里问。
是否有一个简单的“美丽”解决方案,任何人都想分享,或者我应该留出几天来重写应用程序,然后测试它并完成整个舞蹈?
答案 0 :(得分:2)
好吧,显然诀窍是添加一个看起来像RewriteCond %{URL} ^(?!/MisbehavingDir/.*$)
的重写语句,使ISAPI重写跳过下一个规则。