也许我在做一些愚蠢的事情,但我无法摆脱 htaccess 的问题。
我正在尝试匹配文档站点中的函数名称,但遇到了我无法理解的错误。我必须指出我(认为我)知道正则表达式转义,并且我知道点和反斜杠点的含义。
所以:我想允许所有这些:
example.com/foofunction
example.com/foofunction.php
example.com/function.foofunction
example.com/function.foofunction.php
这些是我尝试过的线条。那些导致错误的人被误解了,非常感谢任何可以向我解释的人:
^function\.([A-Za-z0-9_-]+)(\.php)?$
-> 有效,但function.
强制
^(function\.)?([A-Za-z0-9_-]+)(\.php)?$
-> 内部错误...好吧,我们不要转义点,最后,它将匹配任何字符并且可以工作...
^(function.)?([A-Za-z0-9_-]+)(\.php)?$
-> 内部错误!好的,只是为了尝试,点外条件?
^(function)?\.([A-Za-z0-9_-]+)(\.php)?$
-> 工作,好的,但它使 dot 成为强制性的。顺便说一句,更疯狂的事情:
^(function)?.([A-Za-z0-9_-]+)(\.php)?$
-> 如果 dot 没有被转义(想象一下我想允许任何字符),也会出现内部错误。现在我将尝试单独使 dot 可选
^(function)?(\.)?([A-Za-z0-9_-]+)(\.php)?$
-> 内部错误,我快疯了...
这些是我到目前为止的尝试,我将尝试可选的后视并更新结果......无论如何,我很想了解这些正则表达式会导致内部错误。
如果有人知道“htaccess 特殊正则表达式异常”参考或我必须阅读的类似内容,将非常欢迎。
在此先感谢大家。