![](/img/trans.png)
[英]Rails 3.1 Passenger/Apache/force_ssl getting 404 error
[英]Rails 3 + Passenger + Apache force WWW and SSL
我试图将所有流量从非SSL重定向到SSL并强制WWW,最后将旧的子域重定向到Rails 3应用程序的主域。
这是我的目标:
http://domain.com -> https://www.domain.com
http://www.domain.com -> https://www.domain.com
http://api.domain.com -> https://api.domain.com
http://old.domain.com -> https://www.domain.com
我正在尝试从看起来像这样的域的apache配置文件中实现这一点:
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias api.domain.com
RewriteEngine On
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=permanent]
</VirtualHost>
<VirtualHost *:80>
ServerName domain.com
ServerAlias old.domain.com
RedirectMatch permanent ^/(.*) http://www.domain.com/$1
</VirtualHost>
<VirtualHost *:443>
ServerName www.domain.com
ServerAlias api.domain.com
DocumentRoot /home/deploy/domain/public
RailsEnv production
<Directory /home/deploy/domain/public>
Allow from all
Options -MultiViews
</Directory>
SSLEngine On
SSLOptions +StrictRequire
SSLCertificateFile /ssldomain_com.crt
SSLCertificateKeyFile /ssl/privateKey.key
SSLCertificateChainFile /ssl/domain_com.ca-bundle
</VirtualHost>
由于某种原因,SSL很好,但是没有重定向发生。 Rails应用程序可在所有4个选项上运行:
https://domain.com
https://www.domain.com
https://api.domain.com
https://old.domain.com
知道如何清除apache配置文件以使其正常工作吗?
较为详细,但您需要做的只是:
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias old.domain.com
ServerAlias domain.com
Redirect / https://www.domain.com/
</VirtualHost>
<VirtualHost *:80>
ServerName api.domain.com
Redirect / https://api.domain.com/
</VirtualHost>
然后,您上面在SSL虚拟主机中拥有的东西。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.