SearchEngines.bg

Това е примерно съобщение за гост. Регистрирайте безплатен акаунт днес, за да станете потребител на SearchEngines.bg! След като влезете, ще можете да участвате в този сайт, като добавите свои собствени теми и публикации, както и да се свържете с други членове чрез вашата лична входяща кутия! Благодарим ви!

.htacess въпрос за забрана само на 1 страница

radev

New member
Здравейте!

Порових в Гугъл не се справих май.
Ето следния ми проблем:

искам през .htaccess (или по някакъв друг начин)
да огранича дадена страница от сайт, например само:
ввв.сайт.ком/нещоси
и само тази страница от целия сайт да се отваря само от българия, а за в други държави да не се отваря и да изписва някакво съобщение.

Много ще съм благодарен на помощ
 
Re: .htacess въпрос за забрана само на 1 страница

Това може да стане например с някой php код, като първо проверява потребителя от коя държава е и след това решава дали да даде достъп или не. В интернет ако се поразтърсиш, миля ще откриеш това което ти трябва точно.
 
Re: .htacess въпрос за забрана само на 1 страница

За .httacess май бях гледал някакъв чалъм, ама там нещата опираха до един модул за apache - GeoIP, който се съмнявам да го има инсталиран по подразбиране на който и да е хостинг.
Иначе съм писал такова php скриптче за IP delivery. Идеята е, че имаш една MySQL таблица с всички български IP диапазони (мисля не бяха повече от 180-200), където всеки IP адрес предварително е конвертиран в числова стойност по определена формула. Така всеки диапазон е представен като две числа. После като вземеш ip-то на потребителя с $_SERVER['REMOTE_ADDR'] го конвертираш по същата формула в число и пускаш заявка към таблицата дали въпросното число попада в някой от диапазоните.
 
Re: .htacess въпрос за забрана само на 1 страница

Ако ти върши работа с php / GeoIP мога да ти дам един готов код от 3 файлчета. Използва standalone версията на GeoIP (http://www.maxmind.com/app/php), така че не зависи от инсталираното на сървъра.

Само ще трябва да сложиш нещо такова на подходящото място в твоя код:

$gip = new GeoIPCoutry($_SERVER['REMOTE_ADDR']);
if( @ strtolower($gip->getCode()) == 'bg' ){
echo 'Doing stuff for Bulgarian users';
die;
} else {
echo 'Doing stuff for foreign users';
die;
}

Можеш да тестваш тук: http://almad.eu/GeoIPCoutry.php
 
Re: .htacess въпрос за забрана само на 1 страница

Благодаря на всички!
Преди да предприемам такива мерси, реших нещо друго по идея на колегата, което надявам се да направя и да стане по културния начин :)

Поздрави!

П.С. ако закуча ще си кажа :)
 
Re: .htacess въпрос за забрана само на 1 страница

Тъй като това може да потрябва на някой друг ще споделя моя опит с блокиране на достъпа от други държави. Наскоро ме нападнаха от някакъв bot net съставен основно от китайски ip-та и след като не успях да намаля атаката с допълнителните модули реших да банна целия китайски народ. На адрес http://www.countryipblocks.net/ видях приблизително кой им е range-а, както и добавих още няколко range-a от други държави и блокираха достъпа до определени папки със следния код в файла с настройки на apache.

Order allow,deny
allow from all

deny from 117.
deny from 118.
deny from 119.
...

В http://www.countryipblocks.net/ има опция да генерира автоматично .htaccess файлове за разрешаване и забраняване на достъпа от някоя държава.

Неприятното е ако се сложи някой IP range което се ползва в България, въпреки че се води на Пакистан, но обиквенно тези IP-та се позлват за хостване на незаконно съдържание а не от потребители.
 
Re: .htacess въпрос за забрана само на 1 страница

MaxMind GeoIP - има си модул за апач, ето от документацията им:

Blocking unwanted countries
The following Apache configuration directives uses GeoIP Country to block traffic from China and Russia:

Код:
GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat

SetEnvIf GEOIP_COUNTRY_CODE CN BlockCountry
SetEnvIf GEOIP_COUNTRY_CODE RU BlockCountry
# ... place more countries here

Deny from env=BlockCountry

# Optional - use if you want to allow a specific IP address from the country you denied
# (See http://httpd.apache.org/docs/1.3/mod/mod_access.html for more details)
Allow from 10.1.2.3

Allowing only specified countries
The following Apache configuration directives uses GeoIP Country to only allow traffic from US, Canada, and Mexico.

Код:
GeoIPEnable On
GeoIPDBFile /path/to/GeoIP.dat

SetEnvIf GEOIP_COUNTRY_CODE US AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE CA AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE MX AllowCountry
# ... place more countries here

Deny from all
Allow from env=AllowCountry

# Optional - use if you want to allow a specific IP address from the country you denied
# (See http://httpd.apache.org/docs/1.3/mod/mod_access.html for more details)
Allow from 10.1.2.3


Неприятното е, че DAT файла - БД-то им е платен, но можеш да използваш някой по-старичък открит из нета.
 

Горе