使用带有allow和Satisfy指令的重写条件

时间:2014-03-07 17:41:45

标签: apache .htaccess

我想创建一个规则,只允许https请求提示用户凭据并重定向http请求。

SetEnvIfNoCase IS_SSL .*yes.* HTTPS_REQUEST
<Files *>
    AuthType Basic
    AuthName "MyFirstPage"
    AuthBasicProvider file
    AuthUserFile /indexing/.pwd
    Require valid-user 
    Order Deny,Allow
    Allow from env!=HTTPS_REQUEST
    Satisfy All
</Files>

<IfModule mod_rewrite.c>
    RewriteEngine On
        RewriteCond %{ENV:IS_HTTPS_REQUEST} off [NC]
    RewriteCond %{THE_REQUEST} ^GET [NC]
    RewriteRule ^(.*)/Mydata.php https://%{HTTP_HOST}/x1/Mydata.php [R=301,L] 
</IfModule>

以上代码提示输入http和https请求的密码。你能建议吗

此致

1 个答案:

答案 0 :(得分:0)

您需要将“全部”更改为“任何”

Satisfy Any

这样,如果env!=HTTPS_REQUEST为真,则Require valid-user不需要满足。