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

.htaccess htacess:将所有http重定向到https,但以开头的URL除外,.htaccess,.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

我已在运行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添加一个例外?

是的,是的

只需将此条件添加到规则中:

RewriteCond %{REQUEST_URI} !^/admin.php [NC]
例如,如果有人输入一个URL,如:
http://example.com/admin.php
它不会重定向到HTTPs

此外,您还可以删除额外的重写,这样您的服务器就可以加载更少的内容。您不必这样做,只需为您提供一个额外选项:

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

您的.htaccess中还有其他规则吗?如果堆栈溢出有“love”反应。。。你会得到一个;)现场,谢谢,非常感谢。哈哈,我很高兴能帮助你:)