代码之家  ›  专栏  ›  技术社区  ›  Inigo

htacess:将所有http重定向到https,除了以

  •  1
  • Inigo  · 技术社区  · 7 年前

    我已在运行表达式引擎的网站上安装了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 ?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Joe    7 年前

    是的,是的!

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

    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]
    
    推荐文章