是否可以在RewriteRule 模式的中间使用反向引用?
我设想这样:
RewriteRule ^(.)([a-z]*)$1([a-z]*) $2-$3
^
(note, this fellow, here, refers to that first "(.)")
如果收到的网址为XboopXdoop
,则结果当然为boop-doop
。
我正在尝试使用它来指定传入URL开头的分隔符,该分隔符可用于解析字符串的其余部分,而不强制使用特定字符作为分隔符。
谢谢。
答案 0 :(得分:3)
$1
适用于右侧(重写),但不适用于正则表达式。您需要使用\1
。
尝试:
RewriteRule ^(.)([a-z]+)\1([a-z]+) $2-$3
我遇到了一个奇怪的边缘情况,*
根据字符串的第二个字符分割,而不是第二个字符。 XtestingXtest
导致es-ing
...所以是的,不知道那里发生了什么。如果我使用+
它可以正常工作。
此外,由于*
和+
是贪婪的,如果你有多个分隔符,它将在最后一次出现的字符上分开:
XbaseXtest -> base-test
XbaseXteXst -> baseXte-st
XbaseXtestX -> baseXtest-