我需要重定向我的网站中的所有地址从大写到小写,除了网址的最后一部分。
例如,我想更改www.domain.com/a/B/C/XpTo
结束日期www.domain.com/a/b/c/XpTo
只有最后一部分(XpTo)保持不变。
不过,我也可以有:www.domain.com/A/XpTo
我需要:www.domain.com/a/XpTo
也就是说,即使是一个小路径,也只有最后一部分必须保持不变。我如何在Apache配置文件中不使用RewriteMap而使用.htaccess来实现这一点呢?
这就是我所尝试的:
RewriteEngine On
RewriteCond expr "tolower(%{REQUEST_URI}) =~ /(.*)/"
RewriteRule [A-Z] %1 [R=302,L]
1条答案
按热度按时间u4vypkhs1#
您显示的代码会将所有
REQUEST_URI
转换为小写。您可以在
RewriteRule
模式中使用正则表达式来匹配最后一部分组件,将其与URI的其余部分分开,并在一个组中捕获。这可以用于将原始值放回RewriteRule
目标。同样地,也将最后一部分元件留在
RewriteCond
中的撷取群组之外,以取得%1
中撷取的最后一个元件之前的URI部分。您可以使用此代码: