当域名的有效起始部分时,我尝试匹配重写规则,例如:
/asd-
/asd-f
/asd-f4.
/asd-f4.n
/asd-f4.n
/asd-f4.net
我不希望它在这些无效的起始域中匹配:
/-
/-as
/as--
/asdf.4
我知道它并不完全包容,但我将有效域定义为:
现在我的正则表达式匹配有效的域名,但如果它只是以有效的域名开头,我真的没有。
RewriteRule ^/(((?!-)(?!.*--)[A-Za-z0-9-](?<!-)){1,63}(\.(com|net|org)))$ /?domain=$1 [NC]
答案 0 :(得分:0)
我不确定这是否是您所需要的,但无论如何都会尝试
请注意,我认为最后一部分\.(com|net|org)
是必需的。
如果 last 部分不,则必须使用
其他一些锚定,如(\.(com|net|org)|(?!\S))
或类似。
/([a-zA-Z0-9]|(?<!/)-(?!-)){1,63}\.(com|net|org)
扩展
/
(
[a-zA-Z0-9]
| (?<! / )
-
(?! - )
){1,63}
\.
( com | net | org )
或者,你可以匹配进展,但它仍然需要一些 锚定在最后(可以是任何东西)。
/([a-zA-Z0-9]|(?<!/)-(?!-)){1,63}(\.(c(om?)?|n(et?)?|o(rg?)?)?)?(?!\S)
https://regex101.com/r/4bmeCT/1
扩展
/
(
[a-zA-Z0-9]
| (?<! / )
-
(?! - )
){1,63}
(
\.
(
c
( om? )?
| n
( et? )?
| o
( rg? )?
)?
)?
(?! \S ) # some anchoring required here