.htaccess目录子的不同RewriteRule

时间:2016-09-08 09:58:18

标签: apache .htaccess ssl mod-rewrite

在我的商店,我遇到了问题,SSL不起作用。所以我使用RewriteRule来强制运行SSL,但问题是管理区域不能那样工作。(未知资源从......加载)
因此,如果我要更改管理区域中的内容,我必须一直禁用此RewriteRule 除了RewriteRule的管理区域外,是否存在可能性?

RewriteBase /shop/
RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule (.*) https://domain/shop/$1 [R=301,L] 

在管理区域,我得到: http://domain/shop/admin/ ..

我在上面的规则之后尝试了类似的东西,但它不起作用:

RewriteBase /shop/admin/
RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule (.*) http://domain/shop/admin/$1 [R=301,L] 

1 个答案:

答案 0 :(得分:1)

内部/shop/.htaccess在顶部使用以下两条规则:

RewriteEngine On
RewriteBase /shop/

RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !/admin/ [NC]
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} /admin/ [NC]
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]