我尝试只允许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
答案 0 :(得分:0)
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]