提问人:Dave Fisher 提问时间:3/10/2023 最后编辑:MrWhiteDave Fisher 更新时间:3/10/2023 访问量:89
重写 .htaccess 不在正则表达式中拾取数字
rewrite for .htaccess not picking up numbers in the regex
问:
我已经在文件中写入了重写,以便它用(点)替换 URL 中的任何空格。.htaccess
.
除了 URL 中有数字之外,它工作正常。
RewriteRule ^([^\s%20]*)(?:\s|%20)+(.*)$ $1.$2 [N,E=NOSPACE:1,DPI]
任何帮助将不胜感激
/search/test test
= 适用于上述正则表达式/search/ 123 123
= 不起作用
答:
0赞
MrWhite
3/10/2023
#1
RewriteRule ^([^\s%20]*)(?:\s|%20)+(.*)$ $1.$2 [N,E=NOSPACE:1,DPI]
正则表达式字符类中的字符 和 被视为 3 个文本字符,而不是单个 URL 编码空格(即)。因此,任何包含或也包含空格或后面跟空格的数字都将失败,因为正则表达式将无法匹配。该模式与 %-decoded 的 URL 路径匹配,因此无论如何都不需要尝试匹配。%
2
0
%20
2
0
RewriteRule
%20
因此,您基本上只需要从规则中删除即可。例如:%20
RewriteRule ^([^\s]*)(?:\s)+(.*)$ $1.$2 [N,E=NOSPACE:1,DPI]
评论
0赞
Dave Fisher
3/10/2023
确认这个和 DLK 的版本都有效,但这个解决了我后来在 URL 中使用特殊字符的另一个问题 - 谢谢海报
评论