.htaccess защита админки по ip

надо сделать вход в админку только с определенного ип


AddDefaultCharset UTF-8
Options All -Indexes
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php

RewriteCond %{REQUEST_URI} ^/admin/
RewriteCond %{REMOTE_ADDR} !123.123.123.123
RewriteRule  .* - [F]


и все равно не пашет. что не так?

22 комментария

avatar
Ограничение доступа к директории делается через конфигурирование в виртульном хосте. Рерайт тут вообще нафиг не нужен.
avatar
<Directory admin_dir>
Order Allow, Deny
Deny from All
Allow from 123.123.123.123
avatar
<Directory admin_dir>
Order Allow, Deny
Deny from All
Allow from 123.123.123.123
</Directory> 
avatar
сделал как написали — Internal Server Error )))
avatar
да ну как это не нужен?? админка в лс находится по адресу site.ru/admin — как ты через конфигурационный файл закроешь доступ к ней без реврайтов??
avatar
Вы сами то поняли что написали? ;)
avatar
я то прекрасно понял а вот ты явно не понимаешь нихрена.
avatar
Правда? Вот спасибо, просветили. Если вы все прекрасно поняли, то покажите конфиг вашего виртуального хоста с добавленным ограничением для директории как chebux написал выше.
avatar
Единственное уточнение, если это не физическая директория, то нужно использовать Location
avatar
Идете в папку /admin/ и создаете там файл .htaccess, в который помещаете следующие строчки:
Order Allow, Deny
Deny from All
Allow from 123.123.123.123
Если и это работать не будет, значит у вас на хостинги у апача стоят ограничения, не позволяющие это использовать.
avatar
поменяй последние два блока местами
avatar
AddDefaultCharset UTF-8
Options All -Indexes
RewriteEngine On


RewriteCond %{REQUEST_URI} ^/admin/
RewriteCond %{REMOTE_ADDR} !123.123.123.123
RewriteRule  .* - [F]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php
avatar
ну во первых папка admin там только в /classes/modules/admin и создавать там .htaccess смысла явно нет ну а во вторых менял я эти 2 блока по разному
  • awed
  • 0
avatar
при чем тут /classes/modules/admin
сайт.ком/админ это не папка а путь реврайта

добавь блок в htaccess в корне сайта как я показал и все будет работать
avatar
говорю же я менял и не работает все равно. но самое инетерсно что по отдельности работает. ну скажем если сделать так то работает

AddDefaultCharset UTF-8
Options All -Indexes
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/admin/
RewriteCond %{REMOTE_ADDR} !123.123.123.123
RewriteRule  .* - [F]

Но вмести эти 2 блока не работают!!!
avatar
я прежде чем написать — проверил лично

и сейчас снова перепроверил
если вставить блок
RewriteCond %{REQUEST_URI} ^/admin/
RewriteCond %{REMOTE_ADDR} !123.123.123.123
RewriteRule  .* - [F]


после RewriteEngine On
то всё работает
avatar

AddDefaultCharset UTF-8
Options All -Indexes
RewriteEngine On

RewriteCond %{REQUEST_URI} ^/admin/
RewriteCond %{REMOTE_ADDR} !123.123.123.123
RewriteRule  .* - [F]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php



Не работает так. Ты попробуй скопируй вот это и к себе залей и погляди пашет или нет.
avatar
мне кажется не рабоатет именно из-за этого правила

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php

может в нем надо что то подправить? потому что без него действительно работает.
avatar
залил, работает
avatar
тогда вопрос следующий. может в настройках apacha что то выключено?
avatar
да на локалке все работает как я изначально написал, дело видимо в хосте. Спасибо пользователю zoltes за помощь. буду искать в чем трабл.
  • awed
  • 0
avatar
У движка есть свой роутер, почему бы не создать правило прямо в нём…
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.