如何使用mod_rewrite重定向到https连接?

时间:2013-03-26 22:37:21

标签: apache mod-rewrite

我总是试图将人们重定向到

https://www.somedomain.com/URL 

当他们进入非安全端口时。这是因为我的SSL是针对此网址的。

当有人前往http://www.somedomain.com时,他们会被发送到

http://www.www.somedomain.com

这是我正在尝试的htaccess重写:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://www.%{HTTP_HOST}%{REQUEST_URI}

编辑:

我正在使用cPanel服务器,因此无法使用其他主机。

3 个答案:

答案 0 :(得分:0)

如果已经存在,您将不希望无条件地添加www。 请参阅:Prepend 'www' to an HTTPS url using .htaccess & mod_rewrite

答案 1 :(得分:0)

请注意,mod_rewrite不是首选方法。使用虚拟主机更简单。只需将此配置(来源:apache wiki):

NameVirtualHost *:80
<VirtualHost *:80>
   ServerName www.somedomain.com
   Redirect permanent /secure https://www.somedomain.com
</VirtualHost>

<VirtualHost _default_:443>
   ServerName www.somedomain.com
   DocumentRoot /usr/local/apache2/htdocs
   SSLEngine On
# etc...
</VirtualHost>

答案 2 :(得分:0)

  

我正在尝试将人们重定向到https://www.somedomain.com/URL

我认为这就是你所需要的:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*) https://www.somedomain.com/$1   [R=301,L,NC]