我知道如何使用apache重写引擎将http请求重定向到https。然而,对于手头的任务(一个通过https与服务器交换数据的应用程序),我们实际上想要的是HTTP请求被简单地拒绝。
Deny from %{HTTPS}=off
有办法做到这一点吗?
lymgl2op1#
你不能简单地把指令的一部分拼凑在一起。你需要遵守这些指令的语法,否则引擎无法理解它们。并且会抛出一个内部语法错误。您需要做两件事:1.您需要开始监控您的http服务器的错误日志文件。您可以在那里看到这些错误。* 如果不在开发环境中监控该文件,您就无法实现Web逻辑 *。您当然也应该经常在生产环境中查看它。1.你应该开始阅读你正在使用的工具的文档。apache http服务器项目是一个很好的例子,说明了高质量的打开你的产品:它提供了一个很好的文档,它是精确的,并且有很多很棒的例子。2从重写模块的文档开始:https://httpd.apache.org/docs/current/mod/mod_rewrite.html这是一个实现您所想到的逻辑的建议:
RewriteEngine on RewriteCond %{HTTPS} !=on RewriteRule ^ - [F]
其它变型也是可能的,例如:
RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^ - [F]
1条答案
按热度按时间lymgl2op1#
你不能简单地把指令的一部分拼凑在一起。你需要遵守这些指令的语法,否则引擎无法理解它们。并且会抛出一个内部语法错误。
您需要做两件事:
1.您需要开始监控您的http服务器的错误日志文件。您可以在那里看到这些错误。* 如果不在开发环境中监控该文件,您就无法实现Web逻辑 *。您当然也应该经常在生产环境中查看它。
1.你应该开始阅读你正在使用的工具的文档。apache http服务器项目是一个很好的例子,说明了高质量的打开你的产品:它提供了一个很好的文档,它是精确的,并且有很多很棒的例子。2从重写模块的文档开始:https://httpd.apache.org/docs/current/mod/mod_rewrite.html
这是一个实现您所想到的逻辑的建议:
其它变型也是可能的,例如: