基于 Apache cookie 的站点访问

基于 Apache cookie 的站点访问

我在一个文件中存储了一个 cookie,并希望限制只有设置了该特定 cookie(具有指定名称)的用户才能访问,并将其他人(从站点中的任何页面)重定向到我的站点根目录。由于我的站点使用节点后端来验证用户(即验证密码),因此我还想豁免它的 proxypass 页面(“/authenticate”)以及其前面的任何“子页面”。

我遇到的问题是,这些“白名单”通常不涵盖整个网站(包括子域)并且不适用于正在编入索引的目录。

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    SSLEngine on
    SSLCertificateFile /etc/apache2/ssl/site.com.pem
    SSLCertificateKeyFile /etc/apache2/ssl/site.com.key
</VirtualHost>

<VirtualHost *:443> 
    ServerName site.com
    DocumentRoot /var/www/site.com/html

    <Directory /var/www/site.com/html/files>
        Options +Indexes
       AllowOverride All
    </Directory>

    ProxyRequests Off
    ProxyPass /authorise http://localhost:3001
    ProxyPassReverse /authorise http://localhost:3001
</VirtualHost>

<VirtualHost *:443>
    ServerName movie.site.com
    ProxyRequests Off
    ProxyPass / http://localhost:3000/
    ProxyPassReverse / http://localhost:3000/
</VirtualHost>

<VirtualHost *:443>
  ServerName mail.site.com
  DocumentRoot /var/www/site.com/roundcube

  ErrorLog ${APACHE_LOG_DIR}/roundcube-error.log
  CustomLog ${APACHE_LOG_DIR}/roundcube-access.log combined

  <Directory /var/www/roundcube>
      Options -Indexes
      AllowOverride All
      Order allow,deny
      allow from all
  </Directory>
</VirtualHost>

编辑: 只是为了澄清一下,我知道我可以做类似以下的事情来实现我的目标(在某种程度上):

RewriteEngine on
RewriteCond %{HTTP_COOKIE} !MYCOOKIE
RewriteRule ^/myhome/content/ - [F]

但是我如何确保这对每个 VirtualHost (即每个子域) 都有影响,并且还能从文件中读取单个 cookie,以便我能够在不必重新启动 apache 的情况下进行更改。

谢谢你!

相关内容