Помошник .htaccess - часть 2

Разрешить/Запретить определенным IP адресам к входу.

Иногда, бывает очень нужно, чтобы страницу видели только ваши друзья или знакомые с постоянным IP адресом. Это можно использовать как ограничение для пользователей, (мол only for members форум), но если вы хотите запретить доступ, то с сегодняшними динамичными IP адресами, у вас мало чего получится.

Вы можете заблокировать доступ след. образом:

deny from 000.000.000.000
где 000.000.000.000 это IP адрес.

Чтобы разрешить доступ доступ, надо вписать:

allow from 000.000.000.000
где 000.000.000.000 это IP адрес.

Если вы хотите запретить просмотр всем пользователям, то надо вписать:

deny from all

Но все же, в директории которую вы от всех заблокировали, можно будет использовать скрипты.

Редирект.

Одна из самых полезных функций .htaccess, это редирект (redirect). Поясняю, когда пользователь делает запрос на файл (с адреса к примеру www.serv.ru/test.txt), то отображаться будет содержимое файла на который мы поставим редирект... Т.е. делая запрос на один файл, пользователь получит другой файл, который может находиться как и на вашем сервере так и на чужом сайте. Таким же образом почти работают большинство редиректов в интернете.

Итак, рассмотрим пример:

Redirect /location/from/root/file.ext http://www.serv.ru/new/file/location.xyz

/location/from/root/file.ext - это путь до корнегого файла (до нужного файла).

http://www.serv.ru/new/file/location.xyz это место, куда попадет пользователь сделав запрос на файл file.txt.

Если файл лежит в корневом каталоге, то вместо location/from/root/ можно сразу поставить:

/oldfile.html

ну и если файл в субкаталоге, то будет выглядить так:

/old/oldfile.html

Вы также можете осуществлять редирект на целую папку. Допустим у вас на сервере есть папка oldfolder и вы хотите чтобы пользователь переходил в newfolder по совсем другому адресу.

Redirect /oldfolder http://www.serv.ru/newfolder

Теперь, если человек сделает запрос на файл www.oldserv.ru/oldfolder/images/smile.gif, то пападет на www.serv.ru/newfolder/images/smile.gif.

Это можно использовать очень мощно, если уметь как делать.

Защита паролем.

Еще одна очень хорошая функция .htaccess, состоит в том, что можно делать страницы под паролем. Конечно существуют еще Javascript и тд, варианты, но через .htaccess это самый безопасный вариант. Чтобы создать директорию под паролем, надо выпольнить два шага. Первый шаг состоит из добавление строк в .htaccess и указание защищаемой директории.

AuthName "Section Name" AuthType Basic AuthUserFile /full/path/to/.htpasswd Require valid-user

Вам надо изменить для своего сайта. Например, поменять Section Name на своё название (к примеру - Members area).

/full/path/to/.htpasswd - полный путь до файла .htapasswd (об этом чуть позже).

Если вы не знаете полного пути, то обратитесь к системному администратору.

Файл .htpasswd

Чтобы защитить директорию паролем, надо потратить немного больше времени, чем на другие функции .htaccess, потому что вам также надо создать файл содержащий username'ы и password'ы которым разрешено будет посещать сайт. Эты данные надо вписать в файл .htpasswd. Как и .htaccess это файл без имени и с 8 значным разрешением. Его можно положить в любое место сайта (пароли будут зашифрованы), но все же советую не класть этот файл в корневом каталоге, от чужих глаз подальше.

Создание имен пользователей и паролей.

Как только вы создали свой .htpasswd файл (вы можете это сделать в стандартном текстовом редакторе) вы должны вписать имена пользователей и пароли след. образом:

username:password

где пароль (password) зашифрованная версия пароля. Чтобы зашифровать .htpasswd файл, вам нужно будет воспользоваться готовым скриптом, или самому написать его. Если вам нужно несколько пользователей, то пишите построчно их. Есть даже скрипты которые служат менеджерами файла .htpasswd.

И что дальше?

А дальше вот что. Как только вы заходите в директорию, которая под паролем с помощью файла .htaccess, то у вас всплывет pop-up окно в котором надо будет ввести имя пользователя и пароль. Вы также можете использовать имя пользователя и пароль не зашифровынными в поле адреса, чтобы войти.

http://username:password@www.serv.ru/directory

Автор статьи: Spy
Email: hacktools@hot.ee


09.07.2007 21:36

Комментарии

(yea)  ]:-)
17.03.2010 14:58