Regex将尾部斜杠添加到URL,除非URL以文件扩展名结尾



我目前正在尝试让WordPress网站(使用重定向插件(始终在任何没有斜杠的URL中添加尾部斜杠,但前提是该URL没有以斜杠或文件扩展名结尾(因此图像、.php文件/页面等不受影响(。

例如www.mysite.com/page变为www.mysite.com/page/,但www.mysite.com/page/www.mysite.com/file.php被单独留下。

我能够让上半场发挥作用(如果还没有结束,就强行进行一次斜线(,但我正在努力增加额外的条件。

这就是我目前拥有的:

源URL:/([^/]+)$

目标URL:/$1/

不幸的是,使用.htaccess等并不是一种选择。如有任何建议,我们将不胜感激。

如果在最后一个/之后的零件中不能有点,则可以将其添加到否定字符类中。

如果分隔符不是/,则不必在模式中对其进行转义。

/([^/.]+)$

Regex演示

根据您的需要,您可以添加(?!.*.)(后面没有句点(、(?!.*.php$)(后面没有php扩展名(或(?!.*.(?:php|jpg)$)(后面没有php或jpg扩展名(、ecc。

完整示例:

/(?!.*.)[^/]+$
/(?!.*.php$)[^/]+$
/(?!.*.(?:php|jpg)$)[^/]+$

在这些示例中,不需要匹配组,因此可以用$0/替换。

请在此处和此处查看工作演示。

最新更新