Попытка реализовать ограниченную область входа с помощью ModRewrite
Я пытаюсь реализовать ограниченную область входа в систему с использованием обычной аутентификации и ModRewrite. Логика, которую я пытаюсь сделать, если страница рефернера не находится в экстрасети или на странице входа в систему, запрос, вероятно, потребует аутентификации, поэтому я пересылаю запрос на страницу входа. Затем, если пользователь уже прошел проверку подлинности, запрос будет автоматически переадресован обратно на запрошенный URL.
Я пытаюсь достичь вышеизложенного с помощью следующих правил перезаписи, но после того, как пользователь прошел проверку подлинности и запрос приходит без реферера, запрос оказывается в цикле между правилом перезаписи и перенаправлением со страницы входа в систему.
У кого-нибудь есть идеи, что я здесь делаю не так?
С Уважением,
Олли
RewriteCond %{HTTP_REFERER} !^/extranet/(.*)$ [NC]
RewriteCond %{HTTP_REFERER} !^/extranet_login.html [NC]
RewriteRule ^/extranet/(.*)$ /extranet_login.html?url=%{REQUEST_URI} [L,R,NC]
1 ответ
Разобрался в конце.
Проблема заключалась в том, что я выполнял response.sendDirect на своей странице входа в систему для уже аутентифицированных пользователей. Это означало, что не было реферера. Выполнение перенаправления в javascript после полной загрузки страницы исправляет это и дает мне реферер.
Олли