условный DirectoryIndex на основе IP-адреса, с помощью .htaccess

Я думаю, что Вы испытываете необходимость, чтобы иметь файловую систему на той флэш-памяти или иначе изменить ядро. Необходимо будет смонтировать, что как корневая фс, и затем передают путь к программе как параметр ядра — init=/bin/yourbinary.

2
26.08.2018, 00:28
1 ответ

Принятие мы хотим, чтобы IP-адрес 12.34.56.78 перешел к/var/www/client1 /* и мы хотим, чтобы IP-адрес 87.65.43.21 перешел к/var/www/client2 /*

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^12\.34\.56\.78$
RewriteRule (.*) /client1/$1

RewriteCond %{REMOTE_ADDR} ^87\.65\.43\.21$
RewriteRule (.*) /client2/$1

Сделайте ряд "RewriteCond" и "RewriteRule" для каждого IP, для которого необходимо служить специальной странице.

Операция терпит неудачу:

  1. Клиент 87.65.43.21 подключения
  2. Правило проверяет, ли клиент 12.34.56.78, это не
  3. Сервер затем идет дальше к второму условию
  4. Проверки, если клиент 87.65.43.21, это
  5. Сервер теперь выполняет RewriteRule, который является частью условного выражения, которое прошло тест, и страница/client2 / (file_requested) подается.

OP разъяснил его вопрос, он не должен разделять папки, но различные индексные страницы, которые будут подаваться, вот пример .htaccess для того задания:

RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^12\.34\.56\.78$
RewriteCond %{REQUEST_URI} index\.html$
RewriteRule .* /index-page-client1.html

RewriteCond %{REMOTE_ADDR} ^12\.34\.56\.78$
RewriteCond %{REQUEST_URI} index\.html$
RewriteRule .* /index-page-client2.html

Вышеупомянутое правило дополнительно проверит, является ли файлом, который требуют, "index.html", я предполагаю, что Вы только хотите перенаправить запросы на "index.html"

1
27.01.2020, 22:23
  • 1
    Tim, который является хорошим ясным примером..спасибо!.. но я не должен подавать другой каталог, условно.. а скорее просто другое defaultIndex, IP условно. В первом (новичок) взгляд на Ваш пример кода.. если я использовал это.. это влияет, даже передал бы трафик, который был направлен к другому (sub)? домены на нашем сайте. Мне нужен вызванный IP custom/dev defaultIndex только для определенного субдомена. –  govinda 27.07.2012, 20:43
  • 2
    @govinda ответа, я добавил пример для ситуации, которую Вы обрисовали в общих чертах. Если Вам нужна проверка URI, чтобы только проверить подпапку, изменение ^index\.html кому: ^yoursubfolder/index\.html –  Tim 27.07.2012, 20:52
  • 3
    Tim, согласно Вашему предложению, я просто попробовал это: RewriteCond %{REMOTE_ADDR} ^555\.666\.777\.888$ RewriteCond %{REQUEST_URI} ^dlindex1\.html RewriteRule .* /dlindex2.html ... но это, кажется, не имеет никакого эффекта вообще. IOW, кажется что 'ServerName dl.domain.org DirectoryIndex dlindex1.html' от httpd.conf единственная вещь, которую Apache слушает здесь. Это потому что %{REQUEST_URI} НЕ содержал 'dlindex1.html' перед этим DirectoryIndex втолкнутый?; Вы видите, что я пытаюсь эффективно переопределить DirectoryIndex dlindex1.html от httpd.conf. –  govinda 27.07.2012, 23:02
  • 4
    Куда Вы помещаете эти директивы? Кроме того, тот удаленный адрес, кажется, не реален, таким образом, он никогда не соответствовал бы для Вас, принимая значение по умолчанию к DirectoryIndex Вы указали ранее (в этом случае в httpd.conf) (При цензурировании IP-адреса, прощают мне!) –  Tim 27.07.2012, 23:40
  • 5
    @govinda я предлагаю пробовать пример в новые .htaccess файлы. Также обратите внимание, что я поймал ошибку, мой regex для REQUEST_URI имел ведущую морковь ^, Я удалил это и поместил a $ в конце. Вы могли также удалить ограничение REQUEST_URI полностью, для отладки его. –  Tim 28.07.2012, 18:54

Теги

Похожие вопросы