使用.htaccess重定向到使用apache反向代理的rails应用程序

时间:2016-06-02 07:33:42

标签: ruby-on-rails apache .htaccess redirect proxy

我在端口3000上运行一个简单的rails应用程序。我已经反向代理它到apache端口80并启用了mod_rewrite。当我通过http和https访问时,应用程序工作正常。现在我想将所有http请求重定向到https。我已经在rails应用程序的公共文件夹下有一个.htaccess文件,但它似乎不起作用。

RewriteCond %{SERVER_PORT} 80 [OR,NC]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]

Domain.com指向我的域名。此外,我不希望我的子域名被重定向到https。我如何实现它?

2 个答案:

答案 0 :(得分:1)

删除OR条件并尝试:

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]

答案 1 :(得分:0)

要检查https是否已启用,您可以将RewriteCondHTTPS变量一起使用

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L]