SEO - Статьи [Faq] .htaccess

Discussion in 'SЕО - тонкости, методы раскрутки' started by Cawabunga, 21 Feb 2008.

  1. Cawabunga

    Cawabunga Elder - Старейшина

    Joined:
    16 Apr 2007
    Messages:
    359
    Likes Received:
    165
    Reputations:
    -22
    Для чего служит .htaccess?

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


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

    Как запретить веб-посетителям читать файлы в директории?
    Code:
    Запрет на все файлы:
    deny from all
    Разрешить доступ с определенного ip:
    Code:
    order allow deny
    deny from all
    allow from <127.00.01>
    Code:
    В данном случае, <127.00.01> обозначает конкретный адрес.
    Например:
    order allow deny
    deny from all
    allow from 127.00.01
    Советую ставить на админки форумов , сайтов
    
    Запретить доступ с определенного ip:
    Code:
    order allow deny
    deny from all
    deny from <127.00.01>
    
    Code:
    Запрет на группу файлов по маске:
    <Files "\.(inc|sql|...другие расширения...)$">
    order allow,deny
    deny from all
    </Files>
    
    Code:
    Определяет доступ к файлу по его расширению.
    Например запрет на доступ к файлам с расширениям "inc" для веб-посетителей:
    <Files "\.(inc)$">
    order allow,deny
    deny from all
    </Files>
    Запрет на файл:Можно поставить запрет на конкретный файл по его названию и расширению.
    Code:
    <Files config.php>
    order allow,deny
    deny from all
    </Files>
    
    В данном примере стоит запрет на обращения к файлу config.php.

    Пароль на директорию:
    Code:
    AuthName "Private zone"
    AuthType Basic
    AuthUserFile /pub/home/login/.htpasswd
    require valid-user
    </Files>
    
    Code:
    Значение AuthName будет выводиться для посетителя.Значение AuthUserFile указывает на место, где хранится файл с паролями для доступа к данной директории. Этот файл создается специальной утилитой htpasswd.exe.
    
    Например в директории, которую защищаем паролем создаем такой .htaccess:
    AuthName "For Registered Users Only"
    AuthType Basic
    AuthUserFile /pub/site.com/.htpasswd
    require valid-user
    </Files>
    
    Code:
    В этом примере, посетитель при запросе директории, будет читать фразу "For Registered Users Only", файл с паролями для доступа должен лежать в директории /pub/site.com/ и называться .htapasswd . Директория указывается от корня сервера, если вы неправильно зададите директорию, то Апач не сможет прочитать файл .htpasswd и никто не получит доступа к данной директории.
    
    Пароль на файл:
    Пример установки пароля на файл password.rar:
    Code:
    <Files password.rar>
    AuthName "Users zone"
    AuthType Basic
    AuthUserFile /pub/home/login/.htpasswd
    </Files>
    
    Пароль на группу файлов:
    Code:
    <Files "\.(inc|sql|...другие расширения...)$">, можно ставить пароли по маске файлов.
    Пример установки пароля на доступ ко всем файла с расширением "sql":
    <Files "\.(sql)$">
    AuthName "Users zone"
    AuthType Basic
    AuthUserFile /pub/home/login/.htpasswd
    </Files>
    

    Редирект на другой url: Перенаправления посетителя на сайт http://site.ru в .htaccess
    Code:
    Redirect / http://www.site.ru
    
    Показ разных страниц, в зависимости от IP адреса посетителя:
    Code:
    SetEnvIf REMOTE_ADDR <нужный ip адрес> REDIR="redir"
    RewriteCond %{REDIR} redir
    RewriteRule ^/$ /another_page.html
    
    Например, перенаправление посетителей с ip адресом 192.12.131.1 на страницу about_my_sity.html:
    Code:
    SetEnvIf REMOTE_ADDR 192.12.131.1 REDIR="redir"
    RewriteCond %{REDIR} redir
    RewriteRule ^/$ /about_my_sity.html
    
    Перенаправление посетителя при запросе определенных страниц:
    Любой запрос с адресом /_vti_bin будет автоматически перенаправляться на google.com:
    Code:
    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>

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

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

    Обман как выдать .php за html
    Code:
    RemoveHandler .html .htm
    AddType application/x-httpd-php .php .htm .html .phtml
    
    Как самому обрабатывать ошибки Апача?

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

    Удобно делать собственный обработчик на некоторые ошибки. :
    Code:
    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:
    Code:
    AddDefaultCharset windows-1251
    
    Указываем кадировку на загружаемый файл :

    При загрузке файла пользователем он будет иметь кодировку : windows-1251:
    Code:
    CharsetSourceEnc windows-1251
    
     
    #1 Cawabunga, 21 Feb 2008
    Last edited: 21 Feb 2008
    5 people like this.
  2. FeraS

    FeraS Elder - Старейшина

    Joined:
    19 Jan 2007
    Messages:
    555
    Likes Received:
    420
    Reputations:
    76
    Неплохо) Почитать можно)
     
    1 person likes this.
  3. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Баян..есть несколько статей от br'a....
     
  4. Digimortal

    Digimortal Banned

    Joined:
    22 Aug 2006
    Messages:
    471
    Likes Received:
    248
    Reputations:
    189
    и какое отношение к сео имеет данный фак? )
     
  5. mister

    mister Elder - Старейшина

    Joined:
    24 Jul 2007
    Messages:
    30
    Likes Received:
    16
    Reputations:
    4
    зачем сначала запрещать доступ всем, чтобы потом запретить доступ кому-то отдельно?
     
  6. Newsib

    Newsib New Member

    Joined:
    28 Nov 2007
    Messages:
    0
    Likes Received:
    2
    Reputations:
    0
    1. Как сделать редирект на случайный адрес из списка?
    2. Как сделать редирект по порядку адресов из списка?
    3. Как перенаправить пользователя на следующий адрес из списка, если пользователь с данным Ip уже заходил?
    Спасибо.
     
    1 person likes this.
  7. Spyder

    Spyder Elder - Старейшина

    Joined:
    9 Oct 2006
    Messages:
    1,388
    Likes Received:
    1,209
    Reputations:
    475
    мда
    полностью ctrl+c ctrl+v c wikipedia.org
     
  8. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    Меня очень порадовало первое предложение )))))
    Перечитывал несколько раз и не мог представить ничего не пошлого ((
     
    1 person likes this.
  9. unixfan

    unixfan Elder - Старейшина

    Joined:
    15 Jan 2008
    Messages:
    30
    Likes Received:
    4
    Reputations:
    5
    Code:
    order allow deny
    deny from all
    allow from <127.00.01>
    Пишете что порядок будет сначала разрешение, затем запрет, а сами пишете в обратном порядке далее. Не порядок.
     
  10. gluke

    gluke Banned

    Joined:
    6 Jun 2008
    Messages:
    33
    Likes Received:
    40
    Reputations:
    1
    Подскажите вариант на php или через .htaccess
     
    1 person likes this.