apache - 使用 htaccess 将首字母从小写转换为大写 URL
问题描述
我想将 example.com/test/test2 转换为 example.com/Test/Test2。使用 .htaccess 或 apache (2.4) rewritemap。
找了很多选项,但是都把单词中的所有字母都改了,怎么只增加每个“/”后面的第一个字母
非常感谢您的友好回答。
我试过以下代码:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond expr "toupper(%{REQUEST_URI}) =~ m#(.+)/?$#"
RewriteRule [a-z] %1/ [L]
解决方案
找了很多选项,但是都把单词中的所有字母都改了,怎么只增加每个“/”后面的第一个字母
首先RewriteMap
在您的 Apache 配置中定义它并重新启动 Web 服务器。
RewriteMap uc int:toupper
然后在您的站点根目录中使用规则 .htaccess 将每个字母之后的第一个字母转换/
为大写。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Z].*/)?([a-z])(.*) /$1${uc:$2}$3 [R=302,L,NE]
清除浏览器缓存后进行测试。
更新:基于下面对大写的评论,仅在前两个子目录中使用:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([A-Z][^/]+/)?([a-z])(.*) /$1${uc:$2}$3 [R=302,L]
推荐阅读
- javascript - 如何显示文件名等于高度和宽度输入
- angular - 如何给物体补水?
- javascript - 直接克隆对象属性/值
- google-sheets - 查询 Google 表格 - 如何匹配部分字符串
- vue.js - 使用 doc 作为计算属性(Vue、nedb、Electron)
- pandas - 当我减去两个熊猫数据框列时,我得到 NaN
- css - 速记动画在我的 CSS 表中不起作用
- java - 只为一种方法设置 FeignClient 或 Ribbon
- laravel-5 - 未发送到浏览器的 Cookie
- ios - 我可以将 XCUITest 与 swift 一起用于使用 Objective C 开发的 iOS 应用程序的 UI 自动化吗