Это все еще не совсем понятно, каковы ваши конкретные проблемы, но я попробую угадать, чтобы ответить на этот вопрос. Возможно, ваша проблема не решена этим. Если это так, то проблема - это еще что-то, о чем вы все еще не обращали. Я спросил выше в комментариях, что вы на самом деле подразумеваете под «Это не работает». 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. Эти файлы, как известно, подвержены ошибкам, трудно отлаживаются, и они действительно замедляют работу сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет контроля над конфигурацией хоста (читай: действительно дешевые хостинг-провайдеры) или если у вас есть приложение, которое опирается на составление собственных правил перезаписи (что является очевидным кошмаром безопасности).
Мы не можем помочь с таким неопределенным вопросом. Нам нужно знать, какие URI вы хотите переписать, а что нет, также то, что _exactly_ вы подразумеваете под «Это не работает». – arkascha
Спасибо за ваш ответ Arkascha. Хорошо, так что я хочу сделать, так это то, что только кривые ip-адресов занавеса могут посетить страницу администратора по соображениям безопасности. Так что только из нашего офиса это может быть достигнуто. С кодом, который я отправил в вопросе, вы можете сделать это для сайтов без сертификатов ssl (http), теперь я ищу код для сайта с ssl (https). Таким образом, в приведенном выше примере только ip 1.1.1.1 может получить доступ к администратору url, и я пытаюсь заставить его работать с https. Является ли это более ясным? – Coen
Нет, извините, это не делает вещи намного яснее. Из вашего вопроса было ясно. Вы не ответили на мой вопрос, что вы на самом деле подразумеваете под «Это не работает». Конечно, перенаправление на http-протокол с сайта https вызывает сомнения. Также в RewriteRule очевидна синтаксическая ошибка. Но я полагаю, вы знаете это. Итак, вопрос для нас: что не так с правилом для вас? О, и, пожалуйста, не добавляйте дополнительную информацию в комментарии. Добавьте его к вопросу. Для этого есть ссылка «edit». _Use it._ – arkascha