我们的.htaccess中有这个正则表达式
RewriteRule ^([^\.]+)$ $1.html
字符串它匹配的URL如下:https://example.com/lib到名为lib.html的文件我们还需要匹配:https://example.com/lib/到同一个文件
https://example.com/lib
lib.html
https://example.com/lib/
RewriteRule ^([^\.]+)?/$ $1.html RewriteRule ^([^\.]+[^/]*)$ $1.html
型
xghobddn1#
您可以将其重写为两个单独的规则以保持简单:
RewriteRule (?!.*\.html$)^(.+)\/$ $1.html [last] RewriteRule (?!.*\.html$)^(.+)$ $1.html [last]
字符串它会首先尝试匹配以/结尾的URL,如果失败,它会继续下一个规则。负先行(?!.*\.html$)是为了不重写已经以.html结尾的URL。[last]标志使其停止处理更多规则,以防出现匹配。如果您希望将两者结合在一个规则中:
/
(?!.*\.html$)
.html
[last]
RewriteRule (?!.*\.html$)^(.+?)\/?$ $1.html [last]
nnt7mjpx2#
你好试试这个regex (\w+)\/?$
(\w+)\/?$
2条答案
按热度按时间xghobddn1#
您可以将其重写为两个单独的规则以保持简单:
字符串
它会首先尝试匹配以
/
结尾的URL,如果失败,它会继续下一个规则。负先行(?!.*\.html$)
是为了不重写已经以.html
结尾的URL。[last]
标志使其停止处理更多规则,以防出现匹配。如果您希望将两者结合在一个规则中:
型
nnt7mjpx2#
你好试试这个regex
(\w+)\/?$