.htaccess — это файл, в котором можно задавать настройки веб-сервера для каталога, в котором этот файл лежит и его подкаталогов (если .htaccess есть в корневом каталоге сайта, его действие будет распространяться на весь сайт, однако, если в каком-нибудь каталоге лежит другой .htaccess, то он будет «главным» в этом каталоге и его подкаталогах — если те, в свою очередь, не содержат своих .htaccess). Настройки, не упомянутые в .htaccess, будут определяться исходя из настроек сервера «по умолчанию» и настроек, указанных в вышележащих .htaccess. Пожалуй, наиболее часто .htaccess используется для ограничения доступа к определенным каталогам и файлам сайта.
Устанавливает файл для директории, который грузится по умолчанию. Возможно указание нескольких имен через пробел (пример: DirectoryIndex index.php3 index.htm index.phtml), тогда сервер будет просматривать список слева направо и выдаст по умолчанию первый существующий файл.
Кодировка, которую сервер выдает броузеру по умолчанию.
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-доступ.
Наберите команду:
Параметр -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) одну строчку:
Все. Осталось создать страницу 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
При этом будет выдана ошибка.
Если у Вас есть вопросы, жалобы или предложения по работе нашей компании, напишите нам Нам важно любое мнение. Спасибо.