regex 正则表达式匹配带斜杠和不带斜杠的url

uqxowvwt  于 2023-08-08  发布在  其他
关注(0)|答案(2)|浏览(100)

我们的.htaccess中有这个正则表达式

RewriteRule ^([^\.]+)$ $1.html

字符串
它匹配的URL如下:https://example.com/lib到名为lib.html的文件
我们还需要匹配:https://example.com/lib/到同一个文件

  • 谢谢-谢谢
    尝试:
RewriteRule ^([^\.]+)?/$ $1.html
RewriteRule ^([^\.]+[^/]*)$ $1.html

xghobddn

xghobddn1#

您可以将其重写为两个单独的规则以保持简单:

RewriteRule (?!.*\.html$)^(.+)\/$ $1.html [last]
RewriteRule (?!.*\.html$)^(.+)$ $1.html [last]

字符串
它会首先尝试匹配以/结尾的URL,如果失败,它会继续下一个规则。负先行(?!.*\.html$)是为了不重写已经以.html结尾的URL。
[last]标志使其停止处理更多规则,以防出现匹配。
如果您希望将两者结合在一个规则中:

RewriteRule (?!.*\.html$)^(.+?)\/?$ $1.html [last]

nnt7mjpx

nnt7mjpx2#

你好试试这个regex (\w+)\/?$

相关问题