2016-11-28 3 views
0

Мы пытаемся защитить наш admin url/admin/с ip-блоком в htacces. Так что мы можем подойти только к URL-адресу администратора из одного ip-адреса, и другие люди не могут туда добраться. Мы нашли следующий код, который делает его работу в HTTP так без SSL, но наш сайт имеет SSL (HTTPS) и с помощью следующего кода он не работает там:Ip block magento admin для 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, и я пытаюсь заставить его работать с https. Является ли это более ясным? – Coen

+0

Нет, извините, это не делает вещи намного яснее. Из вашего вопроса было ясно. Вы не ответили на мой вопрос, что вы на самом деле подразумеваете под «Это не работает». Конечно, перенаправление на http-протокол с сайта https вызывает сомнения. Также в RewriteRule очевидна синтаксическая ошибка. Но я полагаю, вы знаете это. Итак, вопрос для нас: что не так с правилом для вас? О, и, пожалуйста, не добавляйте дополнительную информацию в комментарии. Добавьте его к вопросу. Для этого есть ссылка «edit». _Use it._ – 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