我有一个从根目录到子文件夹的重定向。如果用户访问,https://example.com
它会重定向到https://example.com/subfolder
。但如果引荐来源是我的网站,我希望它不重定向,这样用户就可以到达根页面。
例如:
- 用户访问
https://example.com
- 它会重定向到
https://example.com/subfolder
- 用户访问
https://example.com/subfolder/file.html
- 这个页面上有一个链接
https://example.com
,他点击了它 - 必须打开
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
图案与斜杠前缀不匹配。