Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Статьи (https://forum.antichat.xyz/forumdisplay.php?f=119)
-   -   [Faq] .htaccess (https://forum.antichat.xyz/showthread.php?t=62299)

Cawabunga 21.02.2008 01:43

[Faq] .htaccess
 
Для чего служит .htaccess?

.htacces имеет веб-сервер и настройки.Можно менять некоторые конфигурационные файлы, который распространяют свое действие только сайт. Один из таких файлов это .htaccess
Этот файл не доступен веб-пользователю из браузера. Если файл .htaccess расположен в корневой директории сервера, то его действия распространяется на весь сервер, кроме тех папок, где находится другой файл .htaccess (и кроме всех папок "ниже" этой папки со вторым .htaccess).


Через .htaccess можно запретить читать файлы во всех деректориях.

Как запретить веб-посетителям читать файлы в директории?
Код:

Запрет на все файлы:
deny from all

Разрешить доступ с определенного ip:
Код:

order allow deny
deny from all
allow from <127.00.01>

Код:

В данном случае, <127.00.01> обозначает конкретный адрес.
Например:
order allow deny
deny from all
allow from 127.00.01
Советую ставить на админки форумов , сайтов

Запретить доступ с определенного ip:
Код:

order allow deny
deny from all
deny from <127.00.01>

Код:

Запрет на группу файлов по маске:
<Files "\.(inc|sql|...другие расширения...)$">
order allow,deny
deny from all
</Files>

Код:

Определяет доступ к файлу по его расширению.
Например запрет на доступ к файлам с расширениям "inc" для веб-посетителей:
<Files "\.(inc)$">
order allow,deny
deny from all
</Files>

Запрет на файл:Можно поставить запрет на конкретный файл по его названию и расширению.
Код:

<Files config.php>
order allow,deny
deny from all
</Files>

В данном примере стоит запрет на обращения к файлу config.php.

Пароль на директорию:
Код:

AuthName "Private zone"
AuthType Basic
AuthUserFile /pub/home/login/.htpasswd
require valid-user
</Files>

Код:

Значение AuthName будет выводиться для посетителя.Значение AuthUserFile указывает на место, где хранится файл с паролями для доступа к данной директории. Этот файл создается специальной утилитой htpasswd.exe.

Например в директории, которую защищаем паролем создаем такой .htaccess:
AuthName "For Registered Users Only"
AuthType Basic
AuthUserFile /pub/site.com/.htpasswd
require valid-user
</Files>

Код:

В этом примере, посетитель при запросе директории, будет читать фразу "For Registered Users Only", файл с паролями для доступа должен лежать в директории /pub/site.com/ и называться .htapasswd . Директория указывается от корня сервера, если вы неправильно зададите директорию, то Апач не сможет прочитать файл .htpasswd и никто не получит доступа к данной директории.
Пароль на файл:
Пример установки пароля на файл password.rar:
Код:

<Files password.rar>
AuthName "Users zone"
AuthType Basic
AuthUserFile /pub/home/login/.htpasswd
</Files>

Пароль на группу файлов:
Код:

<Files "\.(inc|sql|...другие расширения...)$">, можно ставить пароли по маске файлов.
Пример установки пароля на доступ ко всем файла с расширением "sql":
<Files "\.(sql)$">
AuthName "Users zone"
AuthType Basic
AuthUserFile /pub/home/login/.htpasswd
</Files>


Редирект на другой url: Перенаправления посетителя на сайт http://site.ru в .htaccess
Код:

Redirect / http://www.site.ru
Показ разных страниц, в зависимости от IP адреса посетителя:
Код:

SetEnvIf REMOTE_ADDR <нужный ip адрес> REDIR="redir"
RewriteCond %{REDIR} redir
RewriteRule ^/$ /another_page.html

Например, перенаправление посетителей с ip адресом 192.12.131.1 на страницу about_my_sity.html:
Код:

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

Перенаправление посетителя при запросе определенных страниц:
Любой запрос с адресом /_vti_bin будет автоматически перенаправляться на google.com:
Код:

redirect /_vti_bin http://www.google.com
redirect /scripts http://www.google.com
redirect /MSADC http://www.google.com
redirect /c http://www.google.com
redirect /d http://www.google.com
redirect /_mem_bin http://www.google.com
redirect /msadc http://www.google.com
RedirectMatch (.*)\cmd.exe$ http://www.google.com$1

Как сделать стартовой другую страницу?

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

DirectoryIndex <google.com>

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

DirectoryIndex index.shtml index.php index.php3 index.html index.htm
Как заставить Апач обрабатывать SSI директивы?
SSI позволяют "собирать" страницу из кусочков. В одном кусочке у вас код меню, в другом код верхней части страницы, в третьем - нижней. А посетитель видет обычную страницу, которая состоит из того кода, который входит в ваши кусочки.
Необходимы обязательные установки в httpd.conf:
В блоке, начинающемся с <Directory/> и заканчивающийся </Directory> в строку Options Indexes добавьте Includes.

После, в файле .htaccess пишем:
Код:

AddHandler server-parsed .shtml .shtm .html .htm
Как заставить Апач выполнять в html документах php код?

Обман как выдать .php за html
Код:

RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml

Как самому обрабатывать ошибки Апача?

Наиболее интересные и полезные ошибки Апача это: 403-404, 500.
403 - пользователь не прошел аутентификацию, запрет на доступ (Forbided).
404 - запрашиваемый документ (файл, директория) не найден.
500 - внутренняя ошибка сервера (к примеру, ошибка в синтаксисе файла .htaccess).
Для того, что бы пользователю при этих ошибках были показаны ваши собственные сообщения об ошибках, в .htaccess пишем:
Код:

ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 500 /errors/500.html

При этом при возникновении 404 ошибки пользователю загрузится файл errors/403.html

Удобно делать собственный обработчик на некоторые ошибки. :
Код:

ErrorDocument 403 /errors/error.php?403
ErrorDocument 404 /errors/error.php?404
ErrorDocument 500 /errors/error.php?500

В error.php через $HTTP_SERVER_VARS['REQUEST_URI'] определяем какой документ вызвал ошибку и дальше обрабатываем. Если в .htaccess на ErrorDocument стоит указание файла с полным путем (http://site.ru/error.php), то $HTTP_SERVER_VARS['REQUEST_URI'] будет содержать этот файл, а не вызвавший ошибку.
В Internet Explorer 5.0 неправильно обрабатывается файл, вызывающийся при ошибке, если его размер меньше 1 килобайта. Будет вызвана стандартная страница IE 404.

Как поставить запрет на отображение содержимого директории при отсутствии индексного файла?

Как указать кодировку на все файлы:

Прописываем что все отдаваемые страницы будут иметь кодировку windows-1251:
Код:

AddDefaultCharset windows-1251
Указываем кадировку на загружаемый файл :

При загрузке файла пользователем он будет иметь кодировку : windows-1251:
Код:

CharsetSourceEnc windows-1251

FeraS 21.02.2008 01:53

Неплохо) Почитать можно)

Isis 21.02.2008 02:28

Баян..есть несколько статей от br'a....

Digimortal 21.02.2008 03:34

и какое отношение к сео имеет данный фак? )

mister 21.02.2008 20:57

Цитата:

Сообщение от Cawabunga
Запретить доступ с определенного ip:
Код:

order allow deny
deny from all
deny from <127.00.01>


зачем сначала запрещать доступ всем, чтобы потом запретить доступ кому-то отдельно?

Newsib 22.02.2008 09:52

1. Как сделать редирект на случайный адрес из списка?
2. Как сделать редирект по порядку адресов из списка?
3. Как перенаправить пользователя на следующий адрес из списка, если пользователь с данным Ip уже заходил?
Спасибо.

Spyder 22.02.2008 12:13

мда
полностью ctrl+c ctrl+v c wikipedia.org

nerezus 22.02.2008 15:01

Цитата:

.htacces имеет веб-сервер и настройки.
Меня очень порадовало первое предложение )))))
Перечитывал несколько раз и не мог представить ничего не пошлого ((

unixfan 21.03.2008 23:15

Код:

order allow deny
deny from all
allow from <127.00.01>

Пишете что порядок будет сначала разрешение, затем запрет, а сами пишете в обратном порядке далее. Не порядок.

gluke 18.10.2009 21:41

Цитата:

Сообщение от Newsib
1. Как сделать редирект на случайный адрес из списка?

Подскажите вариант на php или через .htaccess


Время: 21:27