Apache正在侦听端口80,并将所有内容redirect到由stunnel处理的https。 如果我在其中进行身份validationredirect之前它进行身份validation。 有办法解决这个问题吗?
Listen 80 <VirtualHost *:80> RewriteEngine On RewriteRule ^(.*) https://%{HTTP_HOST}$1 <Directory /*> AuthType Basic AuthName "Stooges Web Site: Login with email address" AuthLDAPURL ldap://localhost:389/o=stooges?mail require valid-user </Directory> </VirtualHost>
更新:我使用stunnel而不是apache,因为apache不能处理ssl和stunnel的websockets。
只有当某人访问HTTP服务器的起始页面时才会进行身份validation,但是由于您已将所有人从HTTP站点redirect到HTTPS站点,因此您将永远无法访问该目录。
最好的办法是把身份validation放在HTTPS站点的configuration中,但是如果你不能这样做的话,我认为你应该可以使它与RewriteCond一起工作。 我自己并没有尝试过这个,但是这里有个例子可以帮助你:
Listen 80 <VirtualHost *:80> RewriteEngine On RewriteCond %{AUTH_TYPE} Basic RewriteRule ^(.*) https://%{HTTP_HOST}$1 <Directory /*> AuthType Basic AuthName "Stooges Web Site: Login with email address" AuthLDAPURL ldap://localhost:389/o=stooges?mail require valid-user </Directory> </VirtualHost>
可能只是有一个包含redirect到HTTPS主机的index.html会更容易…