2016-10-07 12 views
0

Мне нужно заблокировать некоторых определенных графств от доступа к веб-сайту и сделал следующий сценарий ниже, но он не блокирует достаточно эффективно.Лучший способ заблокировать некоторые страны от доступа к веб-сайту

К сожалению, у меня нет доступа к файлу .htaccess или конфигурационному файлу Apache через CMS, поэтому мне нужно решить его с помощью Javascript или аналогичного кода.

Есть ли у вас какие-либо предложения по настройке или улучшению моего сценария ниже?

<script> 
var langcodes = new Array("zh", "default"); 
var langredirects = new Array("/lang/{module_pagename}", "DEFAULT"); 
var languageinfo = navigator.language ? navigator.language : navigator.userLanguage; 
var gotodefault = 1; 
function redirectpage(dest) { 
    if (window.location.replace) 
     window.location.replace(dest); 
    else 
     window.location = dest; 
} 

for (i = 0; i < langcodes.length - 1; i++) { 
    if (languageinfo.substr(0, 2) == langcodes[i]) { 
     redirectpage(langredirects[i]); 
     gotodefault = 0; 
     break; 
    } 
} 
</script> 
+7

пользователи могут обойти эту проблему, просто отключив Javascript в браузере. – Feathercrown

+1

Другим способом будет использование PHP с использованием базы геокодирования на основе IP. –

+0

Да Javascript действительно не пуленепробиваемое решение. Я использую CMS Adobe Business Catalyst. Поэтому в настоящее время у меня есть возможность использовать Javascript и Liquid. Но CMS работает на ASP, я также работаю над полным доступом к файлам .aspx. – Jones

ответ

1

Если вы используете PHP, то использовать базу данных IP геолокации (некоторые из них бесплатны) и $ _SERVER [ «REMOTE_ADDR»], чтобы получить IP-адрес посетителя.

http://www.maxmind.com/app/geolitecity является бесплатной (менее точной) версией коммерческой версии.

Подробнее пожалуйста refer

+0

IMO, это, как правило, поведение Apache, а не PHP (так что модуль Apache или так) – Xenos

+0

.aspx альтернатива? – Jones

+0

@Jones, php или aspx должен быть способ получить удаленный адрес для языка сценариев на стороне сервера. На основе удаленного адреса вы можете отправить сообщение или перенаправить на какой-либо родительский сайт, если необходимо :) – mymotherland

 Смежные вопросы

  • Нет связанных вопросов^_^