我正在编写一个 mod 重写规则,以只允许任意长度字符之间的一个句点。字符必须以字母开头,后跟 2-29 个字符或数字,中间只允许有一个句点(可选)(但不能在末尾)。
这是我到目前为止所拥有的:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z]([.a-z0-9]{2,29}))$ user.php?u=$1 [NC,QSA,L]
此规则不起作用,因为它允许f.oo
(valid)、foo.
(invalid)、f.o.o
(invalid) 甚至f......
.
是否可以仅使用 apache 的 mod rewrite 来完成?还是必须在 PHP 或其他地方进行检查?
谢谢你。