使用特定域的.htaccess重定向到HTTPS

时间:2012-08-06 20:28:17

标签: .htaccess redirect https

我目前有2个域可以访问我服务器上的同一文件夹:metrikstudios.com和ziced.com。

我希望通过 http ://metrikstudios.com输入的用户被重定向到 https ://metrikstudios.com以及通过{{3进入的用户不要被重定向到http://ziced.com

我目前在我的.htaccess上有这个

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

由于

4 个答案:

答案 0 :(得分:29)

你可以简单地添加另一个RewriteCond来检查主机是否是metrikstudios.com

RewriteCond %{HTTP_HOST} ^metrikstudios\.com [NC]

它应该是这样的:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^metrikstudios\.com [NC]
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI}

答案 1 :(得分:3)

上面接受的解决方案仅将non-www域从http重定向到https

如果您要将域名的wwwnon-www版本重定向到ssl,请将以下RewriteCond放在您的http正上方的https规则中或{{1}之前行:

RewriteCond %{HTTPS} off

以下是将特定域重定向到https的完整规则。

RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ [NC]

答案 2 :(得分:0)

Linux& cPanel基于Linux的帐户使用

<强> 的.htaccess

处理重定向的文件。

  

注意:如果您需要创建.htaccess文件,可以使用   控制面板的文件管理器(Web&amp; Classic / cPanel)。

使用.htaccess文件中的以下代码会自动将访问者重定向到您网站的HTTPS版本:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
If you have an existing .htaccess file:

不要重复使用RewriteEngine。 确保以RewriteCond和RewriteRule开头的行紧跟现有的RewriteEngine On。

Windows&amp;的Plesk

基于Windows的帐户使用web.config文件来处理重定向。

注意:如果您需要创建web.config文件,可以使用控制面板的文件管理器(Web&amp; Classic / Plesk)。

在web.config文件中使用以下代码会自动将访问者重定向到您网站的HTTPS版本:

<configuration>
<system.webServer>
<rewrite>
    <rules>
    <rule name="HTTP to HTTPS redirect" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions> 
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
    </conditions> 
    <action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" />
</rule>   
    </rules>
</rewrite>
</system.webServer>
</configuration>

如果您有现有的web.config文件:

确保您有以下部分(即开始和结束标记): system.webServer(包含重写) 重写(包含规则) 规则(包含一个或多个规则部分) 插入任何不存在的部分。 在规则部分中插入整个规则部分,包括匹配,条件和操作。  注意:您需要在规则中插入规则(没有&#39; s&#39;)。

答案 3 :(得分:0)

有时,您可能只想在实时服务器上重定向,并保留其本地设置。例如,如果您在本地计算机上注册了名为www.mysite.loc的本地主机,并在此主机上设置了项目的本地实例。

在这种情况下,这也可能对某人有所帮助:

RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{HTTP_HOST} !.loc$ [NC]
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

其中!.loc$-如果主机以.loc结尾的规则,则忽略重定向到https的规则。