【发布时间】:2019-05-29 07:37:07
【问题描述】:
我做了一个匹配6个字符的文档名称的重写规则,它成功了。
RewriteRule ^document\/(.{6})\/?$ document/?name=$1 [NE,L]
由于我知道文档最多只能命名 12 个字符,因此我添加了一个最大长度量词。但是,使用它会产生 500 服务器错误:
RewriteRule ^document\/(.{6,12})\/?$ document/?name=$1 [NE,L]
事实上,我得到了以下结果:
(.{6}) 有效
(.{6,}) 故障
(.{6,7}) 作品
(.{6,8}) 作品
(.{6,9}) 故障
等等。
我还应该提到https://www.regexpal.com/?fam=109235 告诉我我的规则没有任何问题。但是我在使用时仍然收到 500 服务器错误。
谢谢@emma,要重写的示例 URL:
【问题讨论】:
-
当您尝试
[^\/]{6,12}时会发生什么? -
我不认为正则表达式测试重写规则
-
如果我是你,我会从你的正则表达式中删除 BOS 锚
^,因为它不会匹配“文档”前面的http://www.websited.com/。即使该部分被剥离,您也应该将插入符号从正则表达式中取出。 -
@sln ([^\/]{6}) 有效,([^\/]{6,12}) 错误
-
你知道 Ben,至少你越来越接近于找出为什么你使用的引擎如此糟糕,对吧?
标签: regex .htaccess mod-rewrite apache2