仅当根目录来自其他站点引用时才重定向到文件夹

仅当根目录来自其他站点引用时才重定向到文件夹

我有一个从根目录到子文件夹的重定向。如果用户访问,https://example.com它会重定向到https://example.com/subfolder。但如果引荐来源是我的网站,我希望它不重定向,这样用户就可以到达根页面。

例如:

  1. 用户访问https://example.com
  2. 它会重定向到https://example.com/subfolder
  3. 用户访问https://example.com/subfolder/file.html
  4. 这个页面上有一个链接https://example.com,他点击了它
  5. 必须打开https://example.com,不能重定向

这是我的.htaccess:

RedirectMatch ^/$ https://example.com/

请给我一个解决问题的建议,我对 .htaccess 规则不太了解。

答案1

这是我的.htaccess:

RedirectMatch ^/$ https://example.com/

这显然不会/subfolder像您建议的那样重定向。这将创建一个无限的重定向循环。

但是,您无法Referer使用 mod_alias 检查标头RedirectMatch。您需要改用 mod_rewrite (或<If>表达式)。

例如:

RewriteEngine On

RewriteCond %{HTTP_REFERER} !^https://example\.com($|/)
RewriteRule ^$ /subfolder/ [R,L]

请注意,检查空的URL 路径(即^$)是有意为之。RewriteRule 图案与斜杠前缀不匹配。

相关内容