我在端口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。我如何实现它?
答案 0 :(得分:1)
删除OR条件并尝试:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^(.*)$ https://domain.com/$1 [R=301,L]
答案 1 :(得分:0)
要检查https是否已启用,您可以将RewriteCond
与HTTPS
变量一起使用
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L]