Есть ли способ указать Apache, что файлы .html следует игнорировать, когда у текущего пользователя либо есть переменная сеанса, либо файл cookie с именем 'admin' *?
Я полагаю, что это на самом деле невозможно. Даже если это так, я думаю, это должно быть очень сложно.
Вместо этого вы можете использовать Кэширование действий . Цитата из документов:
Одной из проблем с кэшированием страниц является
что вы не можете использовать его для страниц, которые
требуется проверка кода, чтобы определить
должен ли пользователь быть разрешен
доступ.
Это звучит как ваш случай.
Но если вам все еще действительно необходимо кэширование страниц через веб-сервер, я думаю, вам лучше реализовать отдельные страницы для администраторов и не администраторов.
Это по одной причине. При включении рельсов Page Caching рельсы вообще не обрабатывают запрос, и поэтому нет способа узнать, аутентифицирован ли пользователь или нет.
Вы, вероятно, можете преодолеть это, используя Dynamic Page Caching . Идея состоит в том, чтобы добавить часть «admin» из JavaScript. Лично мне это не очень нравится.
Еще одно обновление: быстрый поиск принес мне этой статье .
Идея состоит в том, чтобы условно кэшировать страницу и подключить mod_rewrite
для обслуживания страниц администратора.
Будет работать для вас, но это довольно грязное решение.