0

我试图只允许 https 连接到我的子域。我的 .htaccess 目前看起来像这样:

Options -MultiViews -Indexes
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php

RewriteEngine On
#Only allow https requests
RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} !/docs/?(.*)$ [NC]
RewriteRule ^ - [F]
#Docs file rewrite
RewriteRule ^docs/?$ /Docs.php

如果我删除该Only allow https requests部分并尝试访问一个目录(例如http://foo.bar.com/images/),则会显示我漂亮的 403 页面。但是,如果我保留该部分并转到子域根目录(例如http://foo.bar.com/),我会得到默认错误页面,这与 htaccess 完全禁止访问所有文件有关吗?

示例:通过安全连接,403 页面有效 - https://api.subjectplanner.co.uk/assets 但通过非安全连接,它是默认页面 - http://api.subjectplanner.co.uk/assets

4

1 回答 1

1

RewriteEngine On应该在使用重写规则之前:

Options -MultiViews -Indexes
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php

RewriteEngine On

#Only allow https requests
RewriteCond %{HTTPS} off 
RewriteRule !^docs - [NC,F]

RewriteRule ^docs/?$ /Docs.php [L,NC]
于 2014-03-26T22:24:23.577 回答