如何在 Apache REQUEST_URI 上使用正则表达式?

How to use Regex on Apache REQUEST_URI?

目前正在使用 Apache 2.4 和 SSI Legacy Parser On,并尝试使用 Regex 代码来获得我正在寻找的结果。

<!--#set var="test" value=$REQUEST_URI -->
<!--#echo var="test" -->

我从上面的代码得到的示例结果是:

/path1/path2/path3/filename.html

/path1/path2/path3/filename.html?id=2019

我想得到的示例结果是:

/path1/path2/path3/

删除最后一个正斜杠后的任何内容,无论可能有多少路径。

是否有正则表达式代码或我可以用来执行此操作的东西?

好的!在这里我们可以简单地添加一个斜线边界并从开始到最后一个斜线滑动所有内容:

(.*)\/

表达式可以就此停止,可以使用 </code> 简单地调用它。但是,如果您愿意,我们也可以为其添加更多边界,例如开始和结束字符:</p> <pre><code>^(.*)\/.*$

正则表达式

如果这不是您想要的表达方式,您可以 modify/change 您的表达方式 regex101.com

正则表达式电路

您还可以在 jex.im:

中可视化您的表情

JavaScript演示

const regex = /^(.*)\/.*$/gm;
const str = `/path1/path2/path3/filename.html
/path1/path2/path3/filename.html?id=2019
/path1/path2/path3/path4/filename.html?id=2019
/path1/path2/path3/path4/path5/filename.html?id=2019

`;
const subst = ``;

// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);

console.log('Substitution result: ', result);