Запрет в htaccess на доступ к POST /edit

KV
На сайте с 21.12.2011
Offline
68
#71
Милованов Ю.С:
Я не разбираюсь, но напишу:)

Для www.site.ru/contacts и для www.site.ru/main.html

RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REMOTE_ADDR} !=127.0.0.1
RewriteCond %{REMOTE_ADDR} !=127.0.0.2
RewriteRule ^contacts|main\.html$ - [F,L]

Я тоже не силен, но вроде как это правило вышло такое:

НЕ пропускать всех с методом POST на страницы www.site.ru/contacts и www.site.ru/main.html

Кроме этих IP 127.0.0.1 и 127.0.0.2

А нужно: не пропускать всех кто с методом POST и не на страницы www.site.ru/contacts и для www.site.ru/main.html (тоесть если не на эти 2 страницы, то не пропускать всех), кроме 2 IP которым разрешено всё IP 127.0.0.1 и 127.0.0.2 и на любые страницы с POST

И еще заметил что подсеть не работает тут, например:

RewriteCond %{REMOTE_ADDR} !=127.0.0.1/18

работать не будет. Как это осуществить?

siv1987
На сайте с 02.04.2009
Offline
427
#72
Klichko_Vladimir:
И еще заметил что подсеть не работает тут, например:

подсети нету, там регулярное выражение проверяется (если regexp то без знака "=", иначе сравнивается как простая строка).

...

RewriteCond %{REQUEST_URI} !/uri1

RewriteCond %{REQUEST_URI} !/uri2

RewriteRule .? - [F]

KV
На сайте с 21.12.2011
Offline
68
#73
siv1987:
подсети нету, там регулярное выражение проверяется (если regexp то без знака "=", иначе сравнивается как простая строка).

...
RewriteCond %{REQUEST_URI} !/uri1
RewriteCond %{REQUEST_URI} !/uri2
RewriteRule .? - [F]

Не работает, делал так:


RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REMOTE_ADDR} !=127.0.0.1
RewriteCond %{REMOTE_ADDR} !=127.0.0.2
RewriteCond %{REQUEST_URI} !/obratnaya-svyaz
RewriteRule ^ - [F,L]

Блокирует всех кроме 2х IP, страницу тоже блокирует для всех остальных.

Также так пробовал:


RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REMOTE_ADDR} !=127.0.0.1
RewriteCond %{REMOTE_ADDR} !=127.0.0.2
RewriteRule ^ - [F,L]

RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} !/obratnaya-svyaz
RewriteRule .? - [F]

Тоже страница site.ru/obratnaya-svyaz - тоже всем недоступна в методе POST кроме 2х IP.

siv1987
На сайте с 02.04.2009
Offline
427
#74
Klichko_Vladimir:
Также так пробовал:

Так пробовать нет смысла.

---------- Добавлено 14.07.2013 в 22:06 ----------

Klichko_Vladimir:
Блокирует всех кроме 2х IP, страницу тоже блокирует для всех остальных.

Не должно, ведь условие должно сработать когда все правила будут true. А вообще поиграйтесь с логикой.

KV
На сайте с 21.12.2011
Offline
68
#75
siv1987:

Не должно, ведь условие должно сработать когда все правила будут true. А вообще поиграйтесь с логикой.

Так не прошло,

RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REMOTE_ADDR} !=127.0.0.1
RewriteCond %{REMOTE_ADDR} !=127.0.0.2
RewriteCond %{REQUEST_URI} !/obratnaya-svyaz
RewriteRule ^ - [F,L]

из 2 IP моего не было и на странице site.ru/obratnaya-svyaz мне показало 403 ошибку.

Также пробовал


...
RewriteCond %{REQUEST_URI} !^/obratnaya-svyaz
...

^ - тоже ничего не дал

Хелп ми плиз.

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#76

http://htaccess.net.ru/doc/mod_rewrite/RewriteCond.php читать в самом низу после "Дополнительно вы можете устанавливать специальные флаги для Условие добавляя". Пункт Б [OR]

Подпись))
KV
На сайте с 21.12.2011
Offline
68
#77
Милованов Ю.С:
http://htaccess.net.ru/doc/mod_rewrite/RewriteCond.php читать в самом низу после "Дополнительно вы можете устанавливать специальные флаги для Условие добавляя". Пункт Б [OR]

Испробовал. [OR] не помогает.

Если просто так указать:

RewriteCond %{REMOTE_ADDR} !=127.0.0.1

RewriteCond %{REMOTE_ADDR} !=127.0.0.2

То работает и без [OR]. Получается [OR] не нужен.

Добавил и

RewriteCond %{REQUEST_URI} !/obratnaya-svyaz

и ставил после IP [OR] - НЕ помогает.

siv1987
На сайте с 02.04.2009
Offline
427
#78

Klichko_Vladimir, должно работать. Если не работает значит может быть только один вариант - урл obratnaya-svyaz является результатом реврайта, и в ваш блок попадает преобразованный адрес. Отсюда следует что блок надо добавлять перед остальными реврайтами.

KV
На сайте с 21.12.2011
Offline
68
#79
siv1987:
Klichko_Vladimir, должно работать. Если не работает значит может быть только один вариант - урл obratnaya-svyaz является результатом реврайта, и в ваш блок попадает преобразованный адрес. Отсюда следует что блок надо добавлять перед остальными реврайтами.

Делал так:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REMOTE_ADDR} !=127.0.0.1
RewriteCond %{REMOTE_ADDR} !=127.0.0.2
RewriteCond %{REQUEST_URI} !/obratnaya-svyaz
RewriteRule ^ - [F,L]

# 403 for flooders
RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^(.*/)?edit$ - [L,F]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Это весь код. Что тут не так?

A
На сайте с 20.08.2010
Offline
775
#80

Подскажите, как прописать запрет на post wp-login? Грузят очень запросами

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий