htacess:将所有http重定向到https,但以url开头的所有URL除外

时间:2018-08-02 18:02:58

标签: .htaccess

我已经在运行Expression Engine的网站上安装了SSL证书,并添加了以下.htaccess规则以将http重定向到https:

    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ https://%1/$1 [R=301,L]      

这很好,除了我刚刚发现它破坏了控制面板中的CSS。我不知道为什么。但是删除这些.htaccess规则可以使其再次正常工作。

因此,可能具有与上述规则相同的规则,但是会为所有以/admin.php开头的URL添加一个例外?

1 个答案:

答案 0 :(得分:1)

是的,是!

只需将此条件添加到您的规则中即可:

RewriteCond %{REQUEST_URI} !^/admin.php [NC]

例如,如果有人输入类似http://example.com/admin.php的URL,它将不会重定向到HTTP。

此外,您还可以删除多余的重写,以减少服务器的负载。您不必这样做,只是为您提供了一个额外的选择:

RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteCond %{REQUEST_URI} !^/admin.php [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]