以“/start/”开头的正则表达式但不以“end1”结尾或“end2”

发布于 2024-12-11 09:13:57 字数 429 浏览 0 评论 0原文

我试图制定一个正则表达式,与 httpd.conf 文件内 Apache Web 服务器配置的“Location”指令一起使用。

<Location ~ "/start/.*(?!end1|end2)$"> 
    Order Deny,Allow
    Deny from all
    Allow from foo.com
</Location> 

但是,我在 Apache 日志文件中收到以下错误:

Syntax error on line 1179 of c:/apache/apache/conf/httpd.conf:
Regex could not be compiled

我知道错误可能出现在“负向前瞻”部分:(?!end1|end2),但无法准确弄清楚。 谢谢

I was trying to formulate a regular expression to be used with "Location" directive of Apache web server configuration inside httpd.conf file.

<Location ~ "/start/.*(?!end1|end2)$"> 
    Order Deny,Allow
    Deny from all
    Allow from foo.com
</Location> 

However, I got the following error in Apache log file:

Syntax error on line 1179 of c:/apache/apache/conf/httpd.conf:
Regex could not be compiled

I know the error is probably in the "negative lookahead" section: (?!end1|end2), but could not figure out exactly.
Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

月朦胧 2024-12-18 09:13:57

Apache 1.x 使用 POSIX 扩展正则表达式,并且这些表达式

不支持 lookaround

所以你的问题就在这里: (?!end1|end2)

Apache 1.x uses POSIX Extended Regular Expressions and with these expressions

lookaround is not supported.

So your problem lies here : (?!end1|end2)

逆流 2024-12-18 09:13:57

正斜杠一般需要转义:

 "\/start\/.*(?!end1|end2)$"

Forward slashes generally need to be escaped:

 "\/start\/.*(?!end1|end2)$"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文