首页 > 解决方案 > 使用 htaccess 重定向到同一个域

问题描述

当设置了特定的 HTTP_REFERRER 时,我想通过 htaccess 重定向用户。这是我目前的 htaccess

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^(.*)\.example.org [NC]
RewriteRule ^(.*)$ https://example.com/blocked/$1 [L,R]

我现在面临的问题是 HTTP_REFERRER 仍然存在,并且我在 endles 重定向中结束/blocked/blocked/blocked

有什么简单的方法可以简单地将用户重定向/转发到/blocked?

标签: apache.htaccessmod-rewrite

解决方案


您需要/blocked在 Rewrite 中排除 URI 以避免循环错误

RewriteEngine On
RewriteCond %{HTTP_REFERER} ^(.*)\.example.org [NC]
RewriteCond %{REQUEST_URI} !/blocked
RewriteRule ^(.*)$ https://example.com/blocked/$1 [L,R]

推荐阅读