Mod rewrite 强制登录用户使用ssl

Mod rewrite 强制登录用户使用ssl,mod-rewrite,ssl,Mod Rewrite,Ssl,我有一个web应用程序,我们需要对其强制SSL,但仅当用户登录时。不幸的是,当用户登录时,登录页面与web应用程序的url相同 当url只是/or/signup时,我对跳过SSL进行了以下重写,但这失败了,因为a)当用户登录时,他们可能仍然在/并且没有任何强制SSL;b)当用户使用邀请密钥访问signup时,如signup?invite=123abc,模式失败 #RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC] #RewriteCond %{SERVER_P

我有一个web应用程序,我们需要对其强制SSL,但仅当用户登录时。不幸的是,当用户登录时,登录页面与web应用程序的url相同

当url只是/or/signup时,我对跳过SSL进行了以下重写,但这失败了,因为a)当用户登录时,他们可能仍然在/并且没有任何强制SSL;b)当用户使用邀请密钥访问signup时,如signup?invite=123abc,模式失败

#RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC]
#RewriteCond %{SERVER_PORT} !^443
#RewriteCond %{REQUEST_URI} !^(/|signup)$
#RewriteRule (.*) https://mysite.com/$1 [R=301,L]
感觉在apache中强制SSL比从PHP应用程序中强制SSL要快,但我不确定解决这个问题的最佳方法


谢谢

根据您使用的服务器端语言,使用该语言可能比使用重写规则更容易,因为您的服务器端程序会知道用户已登录。一些伪代码:


若用户已登录,请求URL从http开始,则重定向到https。

哦,对了,php。在这种情况下,速度差将是最小的,除非你在一个非常繁忙的网站。另外,如果在验证登录后或登录本身后,您只需输入https URL,那么您无论如何都会减少重定向。但我认为,如果从Apache执行重定向,重定向速度会快得多?我可以继续并将其添加到应用程序代码中,没问题,它似乎效率较低。它可能会快一点,但您需要为apache添加额外的位,以验证用户是否已登录,这将降低您的速度。好的,我就这样做。谢谢