Подмена страницы с помощью php

12
VT
На сайте с 01.10.2017
Offline
12
485

Вопрос такой же, как в этой теме. Из-за того, что тема слишком старая, продолжить в том же топике не получается. Сайт на вордпресс, трафик проксируется через антидддос защиту, из-за этого реальные IP пользователей не определяются, все пользователи определяются как IP антиддоса. Через .htaccess не получается ни забанить, не переадресовать пользователей с определенным IP. Вставил в wp-config.php кусок кода для определения IP из X-Forwarded-For (XFF), начали определяться реальные IP пользователей. Для борьбы с воровством контента, нужно сделать, чтобы для определенных IP происходила замена страницы без редиректа. Подскажите, плиз, что и куда нужно добавить, чтобы это реализовать?

S
На сайте с 30.09.2016
Offline
469
#1
ViktorT:
что и куда нужно добавить

До вывода чего-либо в браузер

if(in_array($ip, $ips)){
include 'fake.html';
die;
}
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
VT
На сайте с 01.10.2017
Offline
12
#2
Sitealert:
До вывода чего-либо в браузер
if(in_array($ip, $ips)){
include 'fake.html';
die;
}

Заголовок темы подойдет? И где указать нежелательный IP, для которого нужно подменить страницу?

S
На сайте с 30.09.2016
Offline
469
#3
ViktorT:
Заголовок темы подойдет?

fake.html - это какая-то html страница в данном случае.

ViktorT:
где указать нежелательный IP
$ips = array('1.1.1.0','1.1.1.1','1.1.1.2','1.1.1.3');
VT
На сайте с 01.10.2017
Offline
12
#4

Sitealert, спасибо за помощь и прошу прощения за глупые вопросы..

if(in_array($ip, $ips)){
include 'fake.html';
die;
}

и

$ips = array('1.1.1.0','1.1.1.1','1.1.1.2','1.1.1.3');

Как это все объединить? В заголовке темы (header.php) это можно вставить? C учетом того, что IP должен браться из X-Forwarded-For (XFF) (в противном случае всех пользователей определяет по IP прокси) это будет работать?

S
На сайте с 30.09.2016
Offline
469
#5
ViktorT:
Как это все объединить?

Сначала задаёте $ips и определяете $ip, потом проверяете соответствие условию и выдаёте страницу.

ViktorT:
В заголовке темы (header.php) это можно вставить?

Думаю, можно. До вывода DOCTYPE - в любом месте. После вывода чего-либо - в соответствии с ситуацией.

VT
На сайте с 01.10.2017
Offline
12
#6
Sitealert:
Сначала задаёте $ips и определяете $ip, потом проверяете соответствие условию и выдаёте страницу.

Я правильно понимаю, что это выглядеть должно как-то так:

$ips = array('1.1.1.0','1.1.1.1','1.1.1.2','1.1.1.3');
// Use X-Forwarded-For HTTP Header to Get Visitor's Real IP Address

if ( isset( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
$http_x_headers = explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] );

$_SERVER['REMOTE_ADDR'] = $http_x_headers[0];
if(in_array($ip, $ips)){
include 'fake.html';
die;
}

Фейковую страницу нужно положить в корень сайта?

S
На сайте с 30.09.2016
Offline
469
#7

Кладёте куда угодно, только тогда путь соответственно изменить надо.

И не забудьте $ip = $_SERVER['REMOTE_ADDR'];

А проверяли, в .htaccess условие RewriteCond %{HTTP:X-FORWARDED-FOR} точно не работает?

VT
На сайте с 01.10.2017
Offline
12
#8
Sitealert:
И не забудьте $ip = $_SERVER['REMOTE_ADDR']

это куда нужно добавить?

Sitealert:
А проверяли, в .htaccess условие RewriteCond %{HTTP:X-FORWARDED-FOR} точно не работает?

Не работало, но не уверен, что все верно сделал.

RewriteCond %{HTTP:X-FORWARDED-FOR} ^95\.108\.128\.242 [OR]
RewriteCond %{HTTP:X-FORWARDED-FOR} ^72\.14\.199\.102
RewriteRule ^(.*)$ fake.htm [L]

Для .htaccess это как-то так должно выглядеть?

S
На сайте с 30.09.2016
Offline
469
#9
ViktorT:
это куда нужно добавить?

Перед проверкой условия.

ViktorT:
Для .htaccess это как-то так должно выглядеть?
Как-то так.
VT
На сайте с 01.10.2017
Offline
12
#10

Добавил php, сайт не открывается, пишет HTTP ERROR 500🙅

12

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