我正在运行Rails,Phusion-Passenger。
我已尝试过在堆栈溢出时发现的任何内容,但可能是源代码过时了。 我的ssl工作和所有。我不能让它将http重定向到https。我收到错误请求400 错误,说我正在尝试使用普通的http访问https网站。
以下是我的某个网站的配置。
<VirtualHost *:4000>
ServerName beast.xxxxx.com
# Tell Apache and Passenger where your app's 'public' directory is
DocumentRoot /var/www/cava/public
PassengerRuby /home/tasos/.rvm/gems/ruby-2.3.0@cava/wrappers/ruby
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
SSLEngine On
SSLProtocol all -SSLv2 -SSLv3
SSLCertificateFile /etc/apache2/ssl/2_beast.xxxxx.com.crt
SSLCertificateKeyFile /etc/apache2/ssl/xxxxx_nopass.key
SSLCertificateChainFile /etc/apache2/ssl/1_root_bundle.crt
# Relax Apache security settings
<Directory /var/www/cava/public>
Allow from all
#Options -MultiViews
# Uncomment this if you're on Apache >= 2.4:
#Require all granted
</Directory>
</VirtualHost>
重写已启用,我很确定。 我已经尝试了多个代码,你能建议我为Rewrite函数运行代码吗?
是否需要修改我的.htaccess文件或类似内容?我在很多地方都看过它,但我也读过这个文件不应再被修改了。
我想听听任何建议。 任何帮助表示赞赏。
答案 0 :(得分:3)
此:
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
这是一个仅限内部的&#34;重写,并且新的URL永远不会显示给客户端,因为您没有指定它应该是客户端重定向。
尝试
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
^^^^^^^
代替。 [R...]
告诉mod_rewrite将新url作为正式的http重定向发送到客户端。