如何解决正则表达式向URL添加尾部斜杠,除非URL以文件扩展名结尾
我目前正在尝试获取WordPress网站(使用重定向插件),以便始终在没有URL的任何URL后面添加斜杠,但前提是该URL既不以斜杠结尾也不是文件扩展名(因此图片,.php文件/页面等不受影响。
例如www.mysite.com/page
成为www.mysite.com/page/
,但是www.mysite.com/page/
和www.mysite.com/file.php
则保持不变。
我能够使前半部分正常工作(如果还没有结束,则强制使用斜杠),但是我正努力添加其他条件。
这是我目前拥有的:
源URL:/([^\/]+)$
目标网址:/$1/
不幸的是,不能使用.htaccess等。任何建议将不胜感激。
解决方法
如果最后一个/
之后的部分中没有点,则可以将其添加到否定的字符类中。
如果delimiter不是/
,那么您就不必在模式中对其进行转义。
/([^/.]+)$
,
根据需要,可以添加(?!.*\.)
(不带句点)或(?!.*\.php$)
(不带php扩展名)或(?!.*\.(?:php|jpg)$)
(不带空格) php或jpg扩展名)等。
完整示例:
\/(?!.*\.)[^\/]+$
\/(?!.*\.php$)[^\/]+$
\/(?!.*\.(?:php|jpg)$)[^\/]+$
在这些示例中,不需要匹配的组,因此您可以替换为$0\/
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。