3

是否可以在 RewriteRule模式的中间使用反向引用?

我这样设想:

RewriteRule  ^(.)([a-z]*)$1([a-z]*)  $2-$3
                          ^
     (note, this fellow, here, refers to that first "(.)")

如果接收到的 url 是XboopXdoop,结果当然是boop-doop

我试图使用它在传入 url 的开头指定一个分隔符,该分隔符可用于解析字符串的其余部分,而不强制使用特定字符作为分隔符。

谢谢你。

4

1 回答 1

3

$1适用于右侧(重写),但不适用于正则表达式。你需要使用\1.

尝试:

RewriteRule ^(.)([a-z]+)\1([a-z]+) $2-$3

我遇到了一个奇怪的边缘情况*,它根据字符串的第二个字符而不是第二个字符进行拆分。 XtestingXtest导致es-ing......所以是的,不确定那里发生了什么。如果我使用+它工作正常。

此外,由于*+是贪婪的,如果您有多个分隔符,它将在字符的最后一次出现时拆分:

XbaseXtest  -> base-test 
XbaseXteXst -> baseXte-st
XbaseXtestX -> baseXtest-
于 2013-07-26T21:16:55.960 回答