仅将请求URL中PDF文件扩展名转为小写的Apache配置需求
解决Apache中仅将PDF扩展名转为小写的mod_rewrite配置
针对你遇到的问题——需要把终端用户请求中大写的.PDF扩展名转为小写.pdf,同时保留URL其余部分完全不变,这里有个简洁且精准的Apache mod_rewrite解决方案:
RewriteEngine on RewriteRule ^(.*)\.PDF$ $1.pdf [R=301,L]
规则细节解释
RewriteEngine on:开启Apache的重写模块,这是所有重写规则生效的前提^(.*)\.PDF$:正则表达式精准匹配以大写.PDF结尾的请求,其中^(.*)会捕获URL里除了.PDF后缀之外的所有内容(比如Im_An_Example)$1.pdf:把捕获到的内容(用$1指代)拼接上小写的.pdf后缀,生成正确的目标路径[R=301,L]:R=301代表发送永久重定向响应,能让浏览器和搜索引擎更新缓存的错误URL,从根源减少后续的错误请求;L表示这是最后一条执行的规则,匹配成功后不再处理其他重写逻辑
适配你的场景优势
这个方案完美贴合你的所有限制条件:
- 不需要修改任何PDF文件名,也不用调整应用内的URL引用
- 只针对
.PDF后缀做转换,完全保留URL其余部分的大小写、结构,不会影响其他类型的请求 - 永久重定向(301)能自动纠正用户和搜索引擎的错误请求,哪怕请求来源不明,也能确保用户不会遇到404
你之前把问题复杂化了,其实这个规则足够简单,不需要复杂的正则知识就能快速部署生效。
内容的提问来源于stack exchange,提问作者Chris Giddings
相关产品推荐
相关产品推荐

