Перенаправление Htaccess определенного IP-адреса в файл

#apache #.htaccess #redirect

#apache #.htaccess #перенаправление

Вопрос:

У меня есть домен, на котором я устанавливаю WordPress, но я хотел бы видеть WordPress index1.php только на мой IP-адрес, пока находится в стадии разработки. В то же время другие посетители, которых они будут продолжать видеть index.html как обычно.

Перенаправление:

  • С ip 1.2.3.4 запрашивает domain.com перенаправление на domain.com/index1.php
  • Из других запросов IP-адресов на domain.com перенаправление на domain.com/index.html

Я попытался сделать это, изменив .htaccess

 RewriteEngine On
RewriteBase /

RewriteCond %{REMOTE_ADDR} !^1.2.3.4
RewriteRule ^(.*)$ /index1.php [L]
  

Я пробовал несколько вариантов, но никто не работает так, как ожидалось

 RewriteRule ^(.*.html)$ /index1.php [L]
  

или

 RewriteRule ^(.*.html)$ /index1.php [L]
  

но это может быть условием перезаписи.

ссылка на mod_rewrite

Ответ №1:

Пусть будет так:

 RewriteEngine On
RewriteBase /

RewriteCond %{REMOTE_ADDR} =1.2.3.4
RewriteRule ^(?:index.html)?$ index1.php [L,NC]

RewriteCond %{REMOTE_ADDR} !^1.2.3.4$
RewriteRule ^(?:index1.php)?$ index.html [L,NC]

# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteCond %{REMOTE_ADDR} =1.2.3.4
RewriteRule . index1.php [L]

RewriteRule . index.html [L]
  

Комментарии:

1. Я не знаю, в чем проблема, но это тоже не работает. Я думал, что это будет самый простой способ.

2. Убедитесь, что вы получаете точно такой же IP-адрес, который у вас есть в .htaccess, распечатав все заголовки в тестовом файле php

3. да, я сделал так, что повторил «remote_addr: » . $_SERVER[‘REMOTE_ADDR’];

4. хорошо, итак, если IP-это именно то, что у вас есть в .htacess, какую ошибку вы получаете и какой URL-адрес вызывает это?

5. В обоих случаях, с IP-адреса и с другого ip, будут index.php