是否可以在 RewriteRule pattern 中间使用反向引用?
我是这样设想的:
RewriteRule ^(.)([a-z]*)$1([a-z]*) $2-$3
^
(note, this fellow, here, refers to that first "(.)")
如果接收到的 url 是 XboopXdoop
,结果当然是 boop-doop
。
我正在尝试使用它在传入 url 的开头指定一个分隔符,该分隔符可用于解析字符串的其余部分,而不强制使用特定字符作为该分隔符。
谢谢。
最佳答案
$1
在右侧起作用(重写),但在正则表达式中不起作用。您需要使用 \1
。
尝试:
RewriteRule ^(.)([a-z]+)\1([a-z]+) $2-$3
我遇到了 *
的奇怪边缘情况,它根据字符串的第二个字符而不是第二个字符进行拆分。 XtestingXtest
导致 es-ing
... 所以是的,不确定那里发生了什么。如果我使用 +
它工作正常。
此外,由于 *
和 +
是贪心的,如果您有多个分隔符,它将在最后一次出现该字符时拆分:
XbaseXtest -> base-test
XbaseXteXst -> baseXte-st
XbaseXtestX -> baseXtest-
关于.htaccess - 模式中的 mod_rewrite RewriteRule 反向引用使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17885380/