чт, 13 июн. 2024 г. в 17:41, Dave Wreski <dwreski@xxxxxxxxxxxxxxxxxxx.invalid>: > > Hi, > > Some time ago I requested help with a rewrite rule to strip trailing slash(es) from all URLs in our joomla website, but I'm still having problems. This is the rule I am currently working with: > > RewriteRule ^(.*)/+$ https://linuxsecurity.com$1 [R=301,L] > > It works fine for any URL other than the homepage. Somehow for the homepage it creates an infinite loop, despite using "L", so perhaps I don't understand what it's doing. The (.*) is supposed to match any character, but there wouldn't be any preceding elements for the homepage. > > The problem as I see it is that, for the homepage, (.*) would be null, so $1 would also be null? This then creates the same URL as the one we're trying to fix. (.*) means "any character, 0 or more times". "0 times" here means that it matches an empty string. (Technically, it is an empty string, not null). URL for the home page is "/". (The first line of an HTTP 1.x request will be "GET / HTTP/1.1". By definition of the protocol, there has to be some text between the verb (GET) and the version.) A possible solution that I see is to make the first '/' explicit. adding it both to the regexp and to the replacement string: RewriteRule ^/(.*)/+$ https://linuxsecurity.com/$1 [R=301,L] Alternatively, use '+' instead of '*' (meaning 1 or more times): RewriteRule ^(.+)/+$ https://linuxsecurity.com$1 [R=301,L] Best regards, Konstantin Kolinko --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx