Hi,
I have a FAQ, but need some additional info I haven't been able to
find. I'm trying to process links Google has indicated are 404s
that never really ever existed on our site.
I have an htaccess file I'm Including with my main apache config
that only contains RewriteConds. This file is processed before any
of the other htaccess files that contain standard RewriteRules.
This is what I'm using to strip off any trailing slashes in URLs:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]
I just want to confirm that this means none of the RewriteRules
that follow should contain a trailing slash or they will not
match, correct?
Some of my existing RewriteRules that were created before I
realized I should be stripping off the trailing slash actually
contain a trailing slash.
Perhaps I should instead be using '/?' instead of just '/' at the
end of URLs?
Thanks,
Dave
If the following rules look for a trailing slash and you remove it
prior, in theory it won't match. However, remember that .htaccess
files will be parsed over and over until it stops matching, so you are
likely to create a rewrite loop.
Oh, good info. I didn't realize that.
What is the rationale for removing trailing slashes here?
Because apparently Google considers it duplicated content when it sees
one version with a slash and one version without. Here's a few articles
that discuss the issues.
https://authenticdigital.nz/blog/trailing-slashes-and-seo/
https://ahrefs.com/blog/trailing-slash/
https://stackoverflow.com/questions/5948659/when-should-i-use-a-trailing-slash-in-my-url
Also, I learned my RewriteCond above to strip off the trailing slash
doesn't work with URLs involving query strings.
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]
I believe it also has the potential to add a duplicate slash in the
beginning if $1 already has a slash in it, but using just $1 alone
doesn't fix the problem with losing query strings. Even ahrefs uses the
above example in their blog post without considering query strings or
the potential for creating duplicate slashes.
Ideas greatly appreciated.
Thanks,
Dave