404


Шпаргалка: настройки файла .htaccess

Недавно писал о файле robot.txt для изменения глобальных настроек индексации, теперь немного информации об его соседе. В основной директории Вы можете наблюдать также файл .htaccess (обязательно с точкой вначале!) – служебный файле веб-сервера Apache, предназначенном для децентрализованного управления конфигурацией сервера.

Основные возможности .htaccess:

  • открыть или закрыть доступ к каталогам без индексного файла;
  • запаролить директорию – ограничить доступ по логину – паролю (htpasswd);
  • закрыть внешние ссылки (с других сайтов) на архивы;
  • запретить доступ к файлам определенного формата, или доступ к сайту в определенный промежуток времени;
  • запретить – открыть доступ с определенных (айпи) IP адресов;
  • сменить или добавить еще несколько новых названий индексного файла;
  • включить по мере необходимости проверку в страницах определенного формата – типа на наличии SSI, Perl, PHP и др. включений – директив;
  • сделать редиректы (Redirect) – пересылку пользователя с одних адресов на другие – перенаправления пользователя на другую страницу;
  • скрыть структуру каталогов сайта отображающеюся в адресной сроке браузера, или возможно сделать её более простой и наглядной для конечного пользователя (mod_Rewrite);
  • управлять роботами – ботами поисковых систем на сайте;
  • безболезненно и незаметно перенести сайт на новый домен – смена домена;
  • использовать свои собственные общие страницы ошибок, например, как-то наиболее часто используемые -* 401 Authorization Required – Требуется авторизация* 403 Forbidden – Доступ запрещен* 404 Not Found – Документ не найден* 500 Internal Server Error – Ошибка в работе сервера
  • при необходимости сменить кодировку страниц отправляемых веб сервером посетителям;
  • запретить или нужным образом настроить кэширование веб сервера;
  • обучить веб сервер понимать дополнительные нужные Вам форматы (типы) файлов.

В интернете накопал полезную информацию, возможно будет интересное. Шпаргалка не помешает;) Комментарий прилагается.

Кодировка
Как выставить русскую кодировку.
 AddDefaultCharset windows-1251
 Определение кодировки на определенные типы файлов
 AddType "text/html; charset=koi8-r" .html .htm shtm
 Определение кодировки на загружаемые файлы
 CharsetSourceEnc windows-1251
 Отключение перекодировки
 Если при загрузке скриптом не загружаются бинарные файлы, создайте файл .htaccess и поместите его папку, где вы хотите отключить функцию, в нем пропишите строчку:

CharsetRecodeMultipartForms off

Назначение стартовой страницы.

DirectoryIndex index.html

Можно указывать несколько страниц.

DirectoryIndex index.html index.php index.shtml map.html

При запросе каталога они будут искаться в том порядке, в котором перечислены в директиве DirectoryIndex. Еслине будет найден файл index.html, то будет произведен поиск файла index.php и т.д.

#Разрешение / Запрет
Разрешить доступ с определенного IP.

order allow deny

deny from all

allow from 000.000.000.000

Запретить доступ с определенного IP.

order allow deny

allow from all

deny from 000.000.000.000

Запретить просмотр всем.

deny from all

Разрешить просмотр всем.

allow from all

Запретить доступ к определенному файлу.

deny from all

Запретить доступ к файлам с определенным расширением.

deny from all

Запретить доступа к файлам с несколькими типа расширений.

deny from all

? - любой одиночный символ

* - любая последовательность символов, исключая символ / (слеш).

# Тонкая настройка доступа.
Есть каталог a1 и в нем два вложенных каталога a2, a3, введено 2 уровня пользователей. 1 группа имеет доступ то лько к a1 и a2, 2-я ко всем трем каталогам. Необходимо проводить аутентификацию только 1 раз - при доступе к a1, но при этом соблюдать права на доступ к а2 и а3. Ник и пароль запрашиваются только при входе на а1 - если у юзера есть доступ на а2 пароль уже не запрашивается. Если на а3 доступа нет, вылетит табличка "введите пароль".

www.site.ru/a1
www.site.ru/a1/а2
www.site.ru/a1/a3
a1 - общий и вместе с тем закрытый. а2 и а3 только для отдельных личностей.
файл .htaccess для каталога а1:

AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/login/htdocs/clousearea/.htpasswd"
require valid-user

файл .htaccess для каталога а2:

AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/login/htdocs/clousearea/.htpasswd"
require user юзер1 юзер2 юзер3

файл .htaccess для каталога а3:

AuthName "Input password"
AuthType Basic
AuthUserFile "/pub/home/абв/htdocs/clousearea/.htpasswd"
require user юзер1 юзер4 юзер5

# Перенаправление (редирект)

Пути к файлам и директориям должны указываться от корня сервера, например, /pub/home/server1/html/
В именах доменов обязательно должны быть указаны протоколы (http://, https://, ftp://)
Если вы не знаете путь от корня сервера, то Вы можете его узнать, спросив у администратора сервера, либо может е посмотреть сами, запустив на сайте функцию PHP — phpinfo(). Она выведет на экран конфигурацию PHP в виде фиолето вых таблиц. В них Вам необходимо найти переменную doc_root и посмотреть ее значение — это будет путь от корня сервера до Вашей основной директории.

Перенаправление (редирект) только при запросе определенных страниц.

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).
Redirect /oldfolder http://www.serv.ru/newfolder
запрос на www.oldserv.ru/oldfolder/images/smile.gif,
попадет на www.serv.ru/newfolder/images/smile.gif.

#Глобальное перенаправление (редирект) на другой адрес.

Redirect / http://www.site.kz
Перенаправление (редирект) только посетителей с определенным IP-адресом.

SetEnvIf REMOTE_ADDR 192.145.121.1 REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /only_for_you.html

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

AuthName "Section Name" AuthType Basic AuthUserFile /full/path/to/.htpasswd Require valid-user
Вам надо изменить для своего сайта. Например, поменять Section Name на своё название (к примеру - Members area).
/full/path/to/.htpasswd - полный путь до файла .htapasswd (об этом чуть позже).

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

Файл .htpasswd

Чтобы защитить директорию паролем, надо создать файл содержащий логины и пароли, которым разрешено будет посещать сайт. И вписать в файл .htpasswd.
Создание имен пользователей и паролей.
Вписываем имена пользователей и пароли след. образом:
username:password
пароль (password) зашифрованная версия пароля.
Чтобы зашифровать .htpasswd файл, вам нужно будет воспользоваться готовым скриптом, или самому написать его. Если вам нужно несколько пользователей, то пишите построчно их. Как только вы заходите в защищенную паролем директорию, у вас всплывет pop-up окно для ввода логина и пароль.
А можно просто вписать в поле адреса:

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

Как заставить Апач обрабатывать SSI директивы?
SSI позволяют "собирать" страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем - нижней. А посетитель видет обычную страницу, которая состоит из того кода, который входит в ваши кусочки. Необходимы обязательные установки в httpd.conf:
В блоке, начинающемся с и заканчивающийся в строку Options Indexes добавьте Includes и после, в файле .htaccess пишем:
AddHandler server-parsed .shtml .shtm .html .htm

Чтобы пользователь не видел список файлов в папке, при отсутствии в ней индексного файла, добавим строчку:
Options -Indexes

Выполнение php кода в файлах с другим расширением.

Иногда бывает полезно "обмануть" посетителя, выдавая ему свои php-скрипты или иные файлы, как HTML файлы. Реально используется для индексации поисковой системой Rambler php-скриптов.
RemoveHandler .html .htm
AddType application/x-httpd-php php .htm .html phtml

Заметьте, так как файлам с расширением .html и .htm сопоставлено, что это файлы с гипертекстовой разметкой, то мы первой строкой убираем это сопоставление и добавляем обработку таких файлов php интерпретатором. При большой посещаемости сервера такие ухищрения могут вызвать тормоза. Спрашивайте у админа.</pre>

# Error 404 ..| Ошибка 404
Можно создать специальный файл, где будут ссылки на ваш сайт, а не на хостера. Назвать его 404.html и поместить в корневую директорию. Величина страницы с ошибкой должна быть больше 511 байтов, иначе Internet Explorer может показать собственную страницу с описанием ошибки.

ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
ErrorDocument 401 /401.html
ErrorDocument 500 /500.html

Можно указать другой файл, который автоматически откроется при появлении ошибки.
Карта сайта - является идеальным файлом для обработки ошибки error 404 (файл не найден).

ErrorDocument 404 /map.html
register_globals

Если у вас не работает почтовая форма, возможно не включен register_globals, тогда добавьте строчку:
php_flag register_globals on

Или php_flag register_globals off если вы хотите отключить.

# Защита от хотлинков

 Хотлинк (hotlink) - это когда ставят прямую ссылку на ваш контент с другого сайта.

 Часто такая ситуация нежелательна, вы же не хотите оплачивать трафик другого сайта, и для ее избежания используется:
 SetEnvIfNoCase Referer "^http://www.test.com" local_ref=1
 SetEnvIfNoCase Referer "^http://test.com" local_ref=1
 Order Allow,Deny
 Allow from env=local_ref

 Другой вариант:
 RewriteCond %{HTTP_REFERER} !^$
 RewriteCond %{HTTP_REFERER} !^http://www.quux-corp.de/~quux/.*$ [NC]
 RewriteRule .*\.(gif|jpg)$ - [F]
 RewriteCond %{HTTP_REFERER} !^$
 RewriteCond %{HTTP_REFERER} !.*/foo-with-gif\.html$
 RewriteRule ^inlined-in-foo\.(gif|jpg)$ - [F] 

Это интересно!

Полезные ссылки по теме: htaccess.net.ru и еще

с/у УтБ

P.S.: В следующей статье я привиду примеры готовых файлов .htaccess для wordpress и joomla
Маленькая танцующая девочка))) Талант – есть талант! ;)

[Обзор 404 в казнете]

Недавно случайно попал на свою 404 страницу и увидел следующее:

404 Not Found.

Стандартная страница в WordPress’ e. Мне стало немного стыдно за эту страницу. Теперь необходимо сделать удобную и простую страницу. (Процесс идет полным ходом:))

Естественно мне стало очень интересно как же в казнете оформляют такие страницы. Вообще, смотрят ли за ними?

В начале, хотелось бы определиться с сутью 404 страницей. Т.е. во первых она создана с целью оповестить пользователя об отсутствии страницы (удалении и/или временном отсутствии), также должна иметь ссылки возврата (и не помешало бы ссылку на главную) и быть предельно простой – суть ее в информировании, чем раньше пользователь поймет это, тем лучше.

Ну, так начнем, наш топ 404 :)

Страницу 404 google’a и yandex’a наверное видел каждый, но все же:страница 404страница 404 yandex

Чувствуете разницу?!)) После страницы google, смотря на яндекс теряешься.

Так теперь пройдем по сайтам.

Kiwi.kz неплохо, но можно было бы убрать верхнее меню, сделать ссылку назад и на главную (поиск конечно оставить ;))404 ошибка на kiwi.kz

А вот неправильный пример такой страницы:

Сайт kinomir.net – т.н. один из посещаемых сайтов (по версии whois.1in.kz)

страница ошибка 404 kinomir.net

 

И сайт kino.kz – в стиле ie – на английском языке и слишком много написано. При чем скорее всего никто этого не читает.404 ошибка на kino.kz

Еще из серии не очень страницы:

Vse.kz – честно не сразу понял, что страницы не существует. Думаю комментарии излишне.vse.kz неправильная страница 404

Далее поинтересней:

Uzumaki.kz Не увлекаюсь аниме, но 404 страница не плохо сделана. Единственное фон – рябит в глазах.сайт аниме с ошибкой404

Nur.kz Никакой рекламы, все просто. Излишнем будет наверное меню.nur.kz страница не найдена

Блог – платформа yvision.kz. Все вроде не плохо, но реклама справа отвлекает меня. А надписи оказываются картинкой. Не удачная ссылка на главную сайта.404 not found yvi.kz

Pics.kz – хостинг картинок. Те же ошибки с ссылками.pics.kz/404

Теперь просто останется взглянуть на хорошие страницы 404. Выполненные более или менее лучше других.

Namba.kznamba.kz страница 404 оформлена правильно

Jnet.kz – социальная сеть веб – разработчиков Казахстана. Видно, что разработчики работают.jnet.kz оформление ошибки:404

И теперь самые интересные работы, которые я видел в казнете. Это 404 страница сайта kolesa.kz и krisha.kz

отличное оформление с небольшим минусом

Сразу видно разработчики одни, сделано в стиле сайтов и с юмором:) Неплохо размещена реклама (Зато есть другие…) Не хватает лишь ссылки вернуться назад.

krisha.kz 404 ошибка

Осталось лишь добавить еще пару интересных решений и сделать свой вариант не хуже представленных))

south park kenny's 404страница 404забугорная страница 404