如果有人在没有它的情况下链接到您,您如何在 .htaccess 中设置 301 重定向以将正斜杠添加到您的文档根目录?
根据我所做的研究,大多数搜索引擎将以下 URL 视为两个不同的 URL。
mydomain.com(无正斜杠)
mydomain.com/(正斜杠)
我试过这个(加上许多其他的):
重写规则 ^$ http://www.mydomain.com/ [R=301,L]
这会将它扔进一个循环加载页面的循环中。
如果有人在没有它的情况下链接到您,您如何在 .htaccess 中设置 301 重定向以将正斜杠添加到您的文档根目录?
根据我所做的研究,大多数搜索引擎将以下 URL 视为两个不同的 URL。
mydomain.com(无正斜杠)
mydomain.com/(正斜杠)
我试过这个(加上许多其他的):
重写规则 ^$ http://www.mydomain.com/ [R=301,L]
这会将它扔进一个循环加载页面的循环中。
我认为您从研究中得出了错误的结论。对于 HTTP,不带正斜杠的 Root-URL 指定为等于正斜杠:
注意绝对路径不能为空;如果原始 URI 中不存在任何内容,则必须将其指定为“/”(服务器根目录)。[RFC 2616 第 5.1.2 节]
因此,如果原始 URL 只是一个不以正斜杠结尾的域名(即绝对路径将为空),则该 URL 将由正斜杠扩展。你不必做任何事情。
至于您的问题:由于 mod_rewrite 的微妙之处,第一个斜杠被省略了,因此您的 RewriteRule 捕获了根 URL 并将请求者发送到重定向循环中。
你可以尝试类似的东西
确保您匹配没有 / 的域,如果没有则进行重定向。
RewriteCond %{HTTP_HOST} ^mydomain\.com$
RewriteRule ^(.*)$ http://mydomain.com/$1 [L,R=301]