ПредишенСледващото

  • PHP
  • Htaccess
  • URL Rewriting

Поздрави,% потребителско име%.

трябва да:
Ограничаване на достъпа. Отказ на достъп до всеки, например, (беше просто "от чужбина" много заявки), но "на Руската федерация" и страните от ОНД.







Очаквана решение:
Използване на PHP да се определи страна на клиента (продава) + "razrulit прозрачен" достъп до файлове. За да пренасочите всички заявки към PHP:

check.php получава в искането линия GET, плюс там ние проверяваме ПР. След лечението, ние сме решили какво да правим с искането (за да не съм намерил като се провери IP гео-база данни) - тя или блок пропуснете - но сега "връщане на управлението" обратно?
Т.е. ако искането за ПР "RF", и попита за корена на сайта - просто трябва да донесе на индекса на схемата на сайта; ако искането до ИП "RF", и поиска файла - това е необходимо да се изпрати пряка връзка, в който той е бил преди, без да се променя адреса.
Ако искането от страна на ПР, не е "руски" и в съседните страни, и помоли за корена на сайта - трябва да изпратите удар с глава на 403 и на изхода дисплей, съответстващ на грешката; ако искания файл е директна връзка - трябва да се отчита и съща 403-грешка.

Идеята ще бъде:
Ако е позволено IP - направи удар с глава ( "Местоположение:" @ $ _ GET [ 'URL'] .. "Пренасочване = не? ');. и добавете .htaccess RewriteCond% (^ |) пренасочи = няма ($ |) (и ако е отказано - с код за пренасочване на хедър на страница 403-капачка), но това ще доведе до пренасочване (което трябва да се избягва) и невъзможността на отказ! индекс директория.







Възможно ли е да се направи РНР работа "прозрачен"? Т.е. Apache да работи като той е работил, но в случая, ако клиент ПР в "черния списък" - за блокиране на достъпа?

PS. Извинявам се за някои онемял

Съжалявам, че не съм сигурен, че знам как да направите това с помощта на .htaccess и Apache гол, но защо не използвате Nginx можех, събрани от един от многото GeoIP модула.
Първо Nginx по-добре се справят с статично, а може би и товарът ще падне веднага след въвеждането на nginxa както отпред, и няма да има належаща нужда да се намали на потребителите от региона, и второ с Nginx се изпълнява достатъчно просто:
Например използването geoip2 модул, можете да използвате стандартна конструкция, ако в lokeyshn nginx'a за сравнение на стойността на $ ти район с правото да блокира / позволи.

Съжалявам, ако смятате, че отговорът ми oftopom.

О, това би било чудесно! Но, за съжаление, няма как да се използват модули в допълнение при условие, че общежитие (сред достъпно всичко, свързано с geopozitsiey и няма и следа, но, все пак е написал писмо да изчисти съвестта ми в подкрепа)

Като цяло, приятели, решение. Благодаря на всички отговорили!

Можете да подражава грижа PHP в "прозрачен режим". Възможно е, но е много много ресурси. В 2 думи, алгоритъмът трябва да бъде, както следва - всички искания са пренасочени към index.php; Ако попитате за текущата директория - оттеглянето на вписването; Ако исканата файла - парче по парче, за да го прочете и да даде на (след осъществяване на необходимите заглавията). Но тъй като много заявки и файлове - доста големи - решението да се сложи на сървъра в продължение на две минути. Тя ще работи, ще бъде гъвкав, но да разчитате. Много лош решение в тази ситуация, трябва да кажа.

Какво е направено - като домакин на "rutsentra" (nic.ru) - операция е била прехвърлена на наръчник, съставени от източник mod_geoip модул. и се измъкна от Apache не е директория "дом" (всички местни ridonli). Apache го изяде, модулът е конфигуриран, той е работил. Native "ръчно" на форума "rutsentra" изключително пълен, целият процес отне около една бележка тук. А подкрепа rutsentra не отговори на имейли. Това беше на третия ден.







Подкрепете проекта - споделете линка, благодаря!