【发布时间】:2017-11-29 18:50:37
【问题描述】:
当域的起始部分有效时,我正在尝试匹配重写规则,例如:
/asd-
/asd-f
/asd-f4.
/asd-f4.n
/asd-f4.n
/asd-f4.net
我不希望它在这些无效的起始域中匹配:
/-
/-as
/as--
/asdf.4
我知道它不完全包含,但我将有效域定义为:
- 以字母或数字开头和结尾(不包括点和 tld 部分)
- 1 个字符或更长且小于 63 个字符(不包括点和 tld 部分)
- 仅包含字母、数字或连字符(不包括点和 tld 部分)
- 连续不包含两个或多个连字符
- 以 .com、.net 或 .org 结尾
现在我的正则表达式匹配有效域,但如果它只是以有效域名开头,我并没有真正得到。
RewriteRule ^/(((?!-)(?!.*--)[A-Za-z0-9-](?<!-)){1,63}(\.(com|net|org)))$ /?domain=$1 [NC]
【问题讨论】:
-
RewriteRule只匹配REQUEST_URI而不是域名。 -
如果分解成一系列条件会简单很多。
-
你应该澄清你在这个
RewriteRule中想要做什么。
标签: regex mod-rewrite