Использование .htaccess

.htaccess — это файл, в котором можно задавать настройки веб-сервера для каталога, в котором этот файл лежит и его подкаталогов (если .htaccess есть в корневом каталоге сайта, его действие будет распространяться на весь сайт, однако, если в каком-нибудь каталоге лежит другой .htaccess, то он будет «главным» в этом каталоге и его подкаталогах — если те, в свою очередь, не содержат своих .htaccess). Настройки, не упомянутые в .htaccess, будут определяться исходя из настроек сервера «по умолчанию» и настроек, указанных в вышележащих .htaccess. Пожалуй, наиболее часто .htaccess используется для ограничения доступа к определенным каталогам и файлам сайта. 

Краткий перечень директив файла .htaccess 

DirectoryIndex index.php3

Устанавливает файл для директории, который грузится по умолчанию. Возможно указание нескольких имен через пробел (пример: DirectoryIndex index.php3 index.htm index.phtml), тогда сервер будет просматривать список слева направо и выдаст по умолчанию первый существующий файл.

CharsetDefault windows-1251 

Кодировка, которую сервер выдает броузеру по умолчанию.

CharsetSourceEnc windows-1251
Кодировка, в которой Вы должны закачивать файлы на сервер.
ErrorDocument 404 /index.php3
Файл, который выдает сервер в случае, если произошла ошибка с указанным номером. 404-я ошибка возникает каждый раз, когда запрошенная страница не найдена на сервере. 

Об использовании .htaccess для ограничения доступа к каталогам сайта написано здесь. 
Как закрыть директорию паролем ? 
Вы можете воспользоваться панелью управления вашего сайта.

Так же, Вы можете воспользоваться файлом .htaccess — его следует положить в защищаемую директорию с вот таким содержимым: # Access file 
order allow,deny
allow from all
require valid-user
Authname DirectoryName
Authtype Basic
AuthUserFile /home/./.passwd
Этот файл лучше положить в директорию недоступную через WWW. Узнать полный путь доступа к этому файлу лучше через telnet, зайдите в директорию с файлом .passwd и наберите команду pwd, и Вы увидите полное имя директории. 
Создать файл с паролями Вы можете на своем компьютере с помощью программы htpasswd, которую нужно запускать через shell-доступ. 
Наберите команду:

htpasswd [-c] .passwd username

Параметр -c нужен только в том случае, если Вы создаете новый файл с паролями. Если Вы хотите добавить нового пользователя к уже существующему файлу, то указывать -с не нужно. username — имя добавляемого пользователя 
После того, как Вы нажмете ENTER, Вам нужно ввести (два раза во избежание ошибки) пароль для нового пользователя. Это все! 
Так же, файл с паролями можно формировать и из скрипта, например на Perl: 
open(F, «>>.passwd») || die «
Can`t append file .passwd»;
print F «$username:». crypt($password, ‘ms’) .»\n»; close(F);
system «chmod 766 .htpasswd»;

в переменных $username и $password имя и пароль нового пользователя. Вместо ‘ms’ можно подставлять любые две буквы. Переадресация 
Весьма полезное применение переадресации — организация download обновленных версий вашего продукта.

Когда выкладывается новая версия продукта, обычно меняется какой-то кусок в имени файла. Это очень удобно, так как это позволяет избежать путаницы в версиях. Однако когда Вы выпускаете обновленную версию, то возникает проблема. Вам придется хранить и старые версии, так как ходить к Вам будут за Вашим продуктом и по старым ссылкам. 
Избежать этого довольно просто использовав команду переадресации www-сервера Apache.
Предположим что Ваша последняя версия MySoft12.exe, а предыдущие были MySoft10.exe и MySoft11.exe
Создайте файл .htaccess и напишите в нем следующие строки:

Redirect /MySoft11.exe http://www.your.com/MySoft12.exe

Где:

— Redirect — собственно команда переадресации;
— /MySoft11.exe или /MySoft10.exe старые имена файлов;

Правило формирования этого параметра такое: к имени Вашего сервера http://www.your.com будет добавлено то, что Вы напишите. 
Поэтому не забывайте про слэш в начале пути к файлу в этом параметре. 
— http://www.your.com/MySoft12.exe — полный интернет-адрес файла (!), который будет загружаться вместо /MySoft11.exe или /MySoft10.exe; 
Обратите внимание, что Вы можете написать здесь вообще любую ссылку в Интернет. (можно, также, использовать и RedirectMatch — это то же, что и просто Redirect, но позволяет использовать * и прочие выражения, например: 

RedirectMatch (.*)\.gif$ http://www.anotherserver.com$1.jpg )
Как это будет работать.
Вот вырезка из лога запроса на подобную ссылку: (использована программа ReGet http://www.reget.com/default.htm )

> OUT GET /MySoft10.exe HTTP/1.0
> IN HTTP/1.1 302 Found
> IN Location: http://www.your.com/MySoft12.exe
> IN Connection: close
> IN Content-Type: text/html
> INF Запрос перенаправлен на http://www.your.com/MySoft12.exe
> INF Начинаем закачку http://www.your.com/MySoft12.exe. Попытка N 1
> OUT GET /MySoft12.exe HTTP/1.0
То есть по какой бы ссылке не качал будущий пользователь Вашу программу, он все равно загрузит самую последнюю. 
Настройка сообщений об ошибках 
Когда пользователь запрашивает какую-то страницу, которой нет на Вашем сайте, например неверно набран URL, то появится стандартное сообщение об ошибке: «File not found». 
Скорее всего, после этого пользователь закроет окно браузера и Вы его (клиента) потеряете. Можно ли вместо стандартного сообщения выдать какую-то свою страницу? Да. Для этого, опять же, надо прописать в файл .htaccess (и положить его в папку web) одну строчку: 

ErrorDocument 404 http://www.mydomain.com/404.html 

Все. Осталось создать страницу 404.html, где показать, например, карту Вашего сайта.

(!) Для кода/ошибки 401 «Unauthorized» нельзя использовать полный адрес URL в качестве параметра для директивы ErrorDocument. 
Как сделать чтобы по умолчанию открывался не index.html, а index.htm? 
Нужно удалить файл index.html и положить index.htm 
На самом деле, достаточано положить в директорию файл .htaccess: DirectoryIndex index.htm index.html index.shtml (и т.д.) 

Действие этого файла распространяется на все вложенные папки.
Как сделать чтобы файл с нестандартным расширением открывался как текстовый в окне браузера? 
Чтобы файл с расширением, например, .lng открывался как текстовый в окне браузера, необходимо в файл .htaccess добавить строчку: 

AddType text/plain .lng

А если надо чтобы сохранялся на диске (как *.zip, *.exe, etc) то строчка должна выглядеть так:

AddType application/octet-stream .lng 
Если в папке нет index.html , как сделать чтобы не показывалось ее содержимое? 
Положите туда файл .htaccess с одной строкой

Options -Indexes

При этом будет выдана ошибка.