Мне нужно перенаправить пользователя, если переменные SERVER_ADDR
и SERVER_NAME
не совпадают.apache httpd - RewriteCond SERVER_NAME не равно SERVER_ADDR
У меня есть следующее правило в моем файле httpd.conf:
RewriteEngine on
RewriteCond %{SERVER_NAME} !%{SERVER_ADDR}
RewriteRule .* /myRedirectPage.html [PT]
Когда SERVER_NAME и server_addr не совпадают, я правильно попадаю. Однако я также перенаправляюсь, даже если они совпадают.
Если я использую следующее условие оно работает как для согласования и несовпадающих сценариев: (где 192.168.1.1 является сервер IP)
RewriteCond %{SERVER_NAME} !192.168.1.1
Чтобы проверить, если переменные совпадают, я РНР $_SERVER['SERVER_NAME']
и $_SERVER['SERVER_ADDR']
переменных.
Как написать RewriteCond так, чтобы он не перенаправлял пользователя, если SERVER_NAME
и SERVER_ADDR
совпадают?
Это немного запутанно. «SERVER_ADDR» (IP) и «SERVER_NAME» (имя) - это два способа идентифицировать один и тот же домен. Поэтому они всегда «соответствуют», потому что это переменные, передаваемые сервером. С другой стороны, один является числовым, а другой - строкой. Как вы их сравниваете, даже с PHP-кодом? –
Я показываю их с помощью 'vardump ($ _ SERVER)', но php идентифицирует оба значения как строки. Я делаю пленный портал, где весь трафик tcp перенаправляется на сервер. Например, если пользователь пытается посетить 'http: // www.google.com /', пользователь будет перенаправлен на мою страницу php, где 'SERVER_ADDR = 192.168.1.1' и' SERVER_NAME = www.google.com' , – Daniel