.htaccess mod_rewrite перенаправление на основе IP: как перенаправить весь трафик в определенный подкаталог, кроме моего IP? - PullRequest
9 голосов
/ 01 января 2012

Я хочу, чтобы мои посетители имели доступ только к определенной части моего сайта (блога). Если они попытаются получить доступ к другим разделам сайта, я бы хотел, чтобы они были перенаправлены в раздел блога.

Я также хочу, чтобы это относилось ко всем, кроме моего IP-адреса.

Итак, структура выглядит следующим образом:

mysite.com/blog // visitor access allowed

mysite.com        // redirect to mysite.com/blog

mysite.com/forum  // redirect to mysite.com/blog

mysite.com/tools  // redirect to mysite.com/blog

etc...

У вас есть предложение, как это сделать через .htaccess mod_rewrite?

Ответы [ 3 ]

18 голосов
/ 01 января 2012

Вы должны иметь возможность перенаправить со следующим:

RewriteCond %{REMOTE_HOST} !^123\.456\.789
RewriteCond %{REQUEST_URI} !^/blog/?
RewriteCond %{REQUEST_URI} /(.*)$
RewriteRule (.*) /blog [R=301,L]
3 голосов
/ 01 января 2012

Вы должны создать страницу, которая обрабатывает определенные перенаправления, а затем отредактировать файл htaccess, чтобы он был примерно таким:

Options +FollowSymlinks
RewriteEngine on
#not your IP
RewriteCond %{REMOTE_HOST} !^123\.123\.123\.123
#make sure the rule allows everyone to access the redirect page
RewriteCond %{REQUEST_URI} !/redirect_page\.html$
#Send them to the redirect page
RewriteRule \.html$ /redirect_page.html [R=302,L]

Rediret_page.html может иметь перенаправление js или на стороне сервера, которое обрабатывает, где они заканчиваются, но оно заставит всех, кто не зашел на ваш IP-адрес через определенную страницу, которая обрабатывает перенаправление.

0 голосов
/ 31 марта 2019

Просто добавьте свой IP-адрес в ..

order deny,allow
deny from all
allow from xxx.xx.xxx
...