我希望每当我们访问site-domain.com它应该被redirect到https://www.site-domain.com/users/sign_in 。
这是我的configuration
<VirtualHost *:443> ServerName www.site-domain.com DocumentRoot /var/www/current/public RailsEnv copsvpc SSLEngine on SSLOptions +StrictRequire SSLCertificateFile /etc/apache2/ssl/certs/cert.crt SSLCertificateKeyFile /etc/apache2/ssl/private/site-domainV2.key SSLCertificateChainFile /etc/apache2/ssl/certs/inertermediateCA.crt <Directory /var/www/current/public> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> <Directory /var/www/current/public/Help> RewriteEngine on RewriteCond %{HTTP:Cookie} !help=([a-zA-Z0-9]+) RewriteRule ^(.*)$ /users/sign_in [L,R] </Directory> </VirtualHost> <VirtualHost *:80> RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] </VirtualHost>
我应该简单地添加以下内容
ServerAlias site-domain.com RewriteEngine On RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L]
我不能testing这个网站不能下去。
所以会是这样的
<VirtualHost *:443> ServerName www.site-domain.com DocumentRoot /var/www/current/public ServerAlias site-domain.com RailsEnv copsvpc SSLEngine on SSLOptions +StrictRequire SSLCertificateFile /etc/apache2/ssl/certs/cert.crt SSLCertificateKeyFile /etc/apache2/ssl/private/site-domainV2.key SSLCertificateChainFile /etc/apache2/ssl/certs/inertermediateCA.crt RewriteEngine On RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] <Directory /var/www/current/public> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny Allow from all </Directory> <Directory /var/www/current/public/Help> RewriteEngine on RewriteCond %{HTTP:Cookie} !help=([a-zA-Z0-9]+) RewriteRule ^(.*)$ /users/sign_in [L,R] </Directory> </VirtualHost>
我可以ping通www.site-domain.com,但不能site-domain.com。 我们是否需要DNS中的site-domain.com条目? 我真的很感激任何帮助。
提前致谢
是的,你需要DNS条目都www。 而domain.com应该指向你的网站IP。
如果它不解决,它不会工作。
$ vi .htaccess
追加以下configuration代码:
RewriteEngine on RewriteCond %{HTTP_HOST} ^domain\.com RewriteRule ^(.*)$ http://www.domain.com/$1 [R=permanent,L]
保存并closures文件。 以上代码将把用户redirect到www.domain.comurl。
这里有多个步骤来获得所需的结果。
您必须拥有域名的www和非www版本的DNS。
您将需要configurationApache来parsing这两个域。 通过使用Apache的DomainName和ServerAlias选项。
ServerName domain.comServerAlias www.domain.com
那么你将需要使用Abishek的规则来强制redirect。
重写引擎
RewriteCond%{HTTP_HOST} ^域\ .com
RewriteRule ^(。*)$ http://www.domain.com/$1 [R = permanent,L]
如果您使用的是SSL,那么您将需要一个SSL证书,该证书可以提供www和该域的非www版本的覆盖范围。 如果您订购www.domain.com,大多数供应商将包含domain.com。