使用.htaccess中的指令选择性地将http流量重定向到https (apache)



我目前有两个mod_rewrite规则设置在我的。htaccess文件

rewriteCond %{HTTP_HOST} ^mysite.org [NC]
rewriteRule ^(.*)$ https://www.mysite.org/$1 [R=301,L]
rewriteCond %{SERVER_PORT} =80
rewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI}

前者是重定向来自mysite.org -> https://www.mysite.org的任何流量,后者在端口80 (http)上拾取任何内容并将其发送到https。

但是我的CMS的管理控制面板不能通过https访问,所以我需要能够通过http访问子域mysite.org/admin的任何内容。

这可能吗?

您可以为admin创建一个例外:

rewriteCond %{HTTP_HOST} ^mysite.org [NC]
rewriteRule ^(.*)$ https://www.mysite.org/$1 [R=301,L]
rewriteCond %{SERVER_PORT} =80
rewriteRule ^((?!admin).*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

最新更新