Apache 阻止访问http版本,而不是https版本?

Apache 阻止访问http版本,而不是https版本?,apache,.htaccess,mod-rewrite,redirect,https,Apache,.htaccess,Mod Rewrite,Redirect,Https,我一直在到处寻找如何创建一个重写规则,该规则只适用于网站的http://版本,而不适用于https://版本 基本上,对于登录页面,我试图阻止对http版本的所有访问,以便用户被迫通过安全页面登录 在我的情况下,例子是: http://shop.example.com/admin (Blocked) https://shop.example.com/admin (Access) 有人能帮我解决这个问题吗?如果我搜索了错误的关键词,请不要降低我的分数。只要给我一些建议,告诉我该找什么,我就会删

我一直在到处寻找如何创建一个重写规则,该规则只适用于网站的http://版本,而不适用于https://版本

基本上,对于登录页面,我试图阻止对http版本的所有访问,以便用户被迫通过安全页面登录

在我的情况下,例子是:

http://shop.example.com/admin (Blocked)

https://shop.example.com/admin (Access)
有人能帮我解决这个问题吗?如果我搜索了错误的关键词,请不要降低我的分数。只要给我一些建议,告诉我该找什么,我就会删除这个问题,继续我的搜索

谢谢

编辑:
另一个问题是这个网站是一个电子商务CMS。因此,整个网站只有一个index.php文件和一个.htaccess文件?

将此代码放入您的
文档\u ROOT/.htaccess文件中:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^shop\.example\.com$ [NC]
RewriteRule ^admin - [F,NC]

这将返回所有
http://shop.example.com/admin
请求。

您好!完美的很抱歉,我忘记了一些重要的信息!我已经在原来的问题上加了这个。那很好,这个规则仍然有效。只需确保此规则是主应用程序中的第一条规则。htaccess我已经尝试了您的解决方案,不幸的是,此解决方案不适用于我的场景。我已经添加了您的解决方案,并且显然已将example.com更改为我的域。这个htaccess文件中唯一的其他重写是简单的301重定向。这个规则肯定有效,因为这里没有太多的事情发生。正如我已经说过的,这一条必须是第一条规则。如果您只有一个域,那么也删除第二行
RewriteCond%{HTTP_HOST}
行。不幸的是,由于某种原因,这中断了对我的站点的使用。我在我的管理目录中尝试了以下内容,似乎效果很好
RewriteCond%%{HTTPS}上的RewriteEngine关闭RewriteRule(.*)HTTPS://%%{HTTP\u HOST}%{REQUEST\u URI}