2016-11-28 42 views
0

我们试图用htacces中的ip块来保护我们的管理url/admin /。所以我们只能从一个IP地址接近管理员网址,而其他人无法到达那里。我们发现下面的代码,使得它在HTTP工作,所以没有SSL,但我们的网站有SSL(HTTPS),并用下面的代码它不工作有:ip block magento admin for https

RewriteCond %{REQUEST_URI} ^/(index.php/)?admin/ [NC] 
RewriteCond %{REMOTE_ADDR} !^1.1.1.1 
RewriteRule ^(.*)$ http:// %{HTTP_HOST}/ [R=302,L] 

我不是专家在建立重写规则和htacces中的东西。有没有人知道如何更改此代码以阻止https网店的管理员网址?

+0

我们不能帮助这样一个模糊的问题。我们必须知道你想要重写什么URI,什么不可以,也就是说,“这不起作用”就是_exactly_。 – arkascha

+0

感谢您的回复Arkascha。好,所以我想要做的只是为了安全起见,只有帷幕ip地址才能访问管理页面。所以只有从我们的办公室才能到达。通过我在问题中发现的代码,您可以为没有ssl证书(http)的网站执行此操作,现在我正在使用ssl(https)查找网站的代码。所以在上面的例子中,只有ip 1.1.1.1可以访问url admin,并且我试图让它与https协同工作。这是否更清楚? – Coen

+0

不,对不起,它没有让事情变得更清楚。从你的问题中清楚了很多。你没有回答我的问题,你真正的意思是“这不行”。当然,从https站点重定向到http协议是值得怀疑的。在RewriteRule中也有一个明显的语法错误。但我认为你知道这些事情。所以我们的问题是:对你来说这个规则有什么问题?哦,请不要在评论中添加其他信息。将其添加到问题中。在你的问题下面有一个编辑链接。 _使用它._ – arkascha

回答

1

现在还不是很清楚你的具体问题是什么,但我会尝试猜测回答这个问题。这可能是你的问题没有解决。如果是这样,那么这个问题是你还没有解决的其他问题。我在评论中上面提到了“这不起作用”的意思。 A 精确该问题的描述对于ge 精确答案很重要。

无论如何,我不明白为什么你必须以明确的方式处理协议和主机名。只是在一个相对的方式改写一切,都应该罚款:

RewriteEngine on 
RewriteCond %{REQUEST_URI} ^/(index.php/)?admin/ [NC] 
RewriteCond %{REMOTE_ADDR} !^1\.1\.1\.1$ 
RewriteRule ^/[R=302,L] 

注:而不是一个特定的IP地址,你可能想指定的地址范围。所以一些前缀可能像^1\.1

而一般的提示:你应该总是喜欢把这样的规则放在http服务器主机配置中,而不是使用.htaccess样式文件。这些文件出了名的错误,很难调试,他们真的放慢了服务器。它们仅作为最后一种选择,用于您无法控制主机配置的情况(阅读:真正便宜的托管服务提供商),或者您拥有依赖编写自己的重写规则的应用程序(这是一个明显的安全噩梦)。

+0

感谢您的回复。我认为你确实得到了这个问题,我也改变了这个问题,使“这不起作用”的部分更清晰。现在,在您回答之后,我们将首先尝试将其放置在http服务器主机中,以便它以更清晰的方式放置。 – Coen