Приведенный ниже код позволяет поисковым роботам (в данном случае, googlebot) просматривать страницу и делает так, чтобы я, с моего IP, мог входить на сайт без пароля, а мой клиент и посетители – по паролю.
AuthName "SiteName Administration"
AuthUserFile /home/sitename.com/.htpasswd
AuthType basic
Require valid-user
Order deny,allow
Deny from all
Allow from 24\\.205\\.23\\.222
Allow from w3.org htmlhelp.com
Allow from googlebot.com
Satisfy Any
Каждый образец кода скопирован с форума htaccessElite. Там же можно найти дополнительную информацию по каждому из образцов.
NB!: Большинство приведенных примеров можно использовать с директивой Files or Filesmatch, чтобы инструкции, содержащиеся в них, применялись только к конкретным файлам.
NB!: Инструкции, направленные на переопределение (rewrite) должны всегда предваряться следующими строками:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
Чтобы присвоить файлу тип независимо от его имени или расширения
#Делает так, что файлы, напр., image.gif, blah.html, index.cgi исполняются как php
ForceType application/x-httpd-php
Чтобы переадресовать запросы, созданные не по https протоколу на https, и решить проблему необходимости повторной авторизации при использовании htpasswd
SSLOptions +StrictRequire
SSLRequireSSL
SSLRequire %{HTTP_HOST} eq "google.com"
ErrorDocument 403 https://google.com
Редирект с битых ссылок, не вредящий SEO
Для одного удаленного файла
Redirect 301 /d/file.html http://www.htaccesselite.com/r/file.html
Для группы файлов типа blog/this.php?gh
RedirectMatch 301 /blog(.*) http://www.askapache.com/$1
При смене доменного имени
Redirect 301 / http://www.newdomain.com
Обязательное www в запросе
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/robots\\.txt$
RewriteCond %{HTTP_HOST} !^www\\.example\\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Необязательное www в запросе
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/robots\\.txt$ [NC]
RewriteCond %{HTTP_HOST} !^www\\.[a-z-]+\\.[a-z]{2,6} [NC]
RewriteCond %{HTTP_HOST} ([a-z-]+\\.[a-z]{2,6})$ [NC]
RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]
Убираем субдомен из строки запроса
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !^/robots\\.txt$
RewriteCond %{HTTP_HOST} \\.([a-z-]+\\.[a-z]{2,6})$ [NC]
RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]
Убираем субдомен из строки запроса
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} \\.([^\\.]+\\.[^\\.0-9]+)$
RewriteCond %{REQUEST_URI} !^/robots\\.txt$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Перенаправление всех посетителей на другой сайт, за исключением одного IP (бывает полезно при веб-разработке)
ErrorDocument 403 http://www.someothersite.com
Order deny,allow
Deny from all
Allow from 24.33.65.6
Операции над переменными (mod_env)
Установка часового пояса сервера:
SetEnv TZ America/Indianapolis
Установка email администратора сервера:
SetEnv SERVER_ADMIN
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
Выключение ServerSignature
ServerSignature Off
Добавление языка и кодировки в заголовки без использования мета-тэгов
AddDefaultCharset UTF-8
# Или AddType 'text/html; charset=UTF-8' html
DefaultLanguage en-US
C использованием директивы Files
AddDefaultCharset UTF-8
DefaultLanguage en-US
C использованием директивы FilesMatch (более предпочтительно)
AddDefaultCharset UTF-8
DefaultLanguage en-US
Использование собственного файла php.ini с помощью mod_php или php, установленного как cgi
Статья на тему: Custom PHP.ini tips and tricks
Если php работает как модуль Apache (mod_php) в корневом файле .htaccess установите следующее:
SetEnv PHPRC /location/todir/containing/phpinifile
Если php установлен как cgi, поместите Ваш файл php.ini в директорию, содержащую php, в описываемом случае /cgi-bin/, а в файл htaccess добавьте следующее:
AddHandler php-cgi .php .htm Action php-cgi /cgi-bin/php5.cgi
Если cgi-php работет через оболочку (для FastCGI), необходимо в скрипте оболочки изменить #!/bin/sh export PHP_FCGI_CHILDREN=3 exec /user3/x.com/htdocs/cgi-bin/php5.cgi на следующее #!/bin/sh export PHP_FCGI_CHILDREN=3 exec /x.com/cgi-bin/php.cgi -c /abs/path/to/php.ini
Безопасность папок: Удаление возможности исполнять скрипты
Это можно сделать несколькими способами. К примеру:
AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
Options -ExecCGI
Таким образом Вы определите, что файлы с перечисленными расширениями попадают в сферу действия команды -ExecCGI, а значит и -FollowSymLinks
Разрешение только методов GET и PUT при обращении к серверу.
Options -ExecCGI -Indexes -All +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} !^(GET|PUT)
RewriteRule .* - [F]
Обработка всех файлов gif скриптом cgi
Action image/gif /cgi-bin/filter.cgi
Обработка запроса / файла в зависимости от метода
Script PUT /cgi-bin/upload.cgi
Форсированная загрузка файла вместо отображения его содержимого прямо в браузере
AddType application/octet-stream .avi
AddType application/octet-stream .mpg
А в HTML-коде достаточно поставить ссылку прямо на нужный файл.
Отображение исходного кода вместо выполнения скрипта
Если возникла необходимость отобразить файлы типа .pl, .py или .cgi в виде исходного кода, а не исполнять их как скрипты, создайте в папке, где они расположены, файл .htaccess, содержащий следующее:
RemoveHandler cgi-script .pl .py .cgi
Многократное увеличение скорости работы сайта при помощи кэширования!
Статья на тему: Speed Up Sites with htaccess Caching
# НА МЕСЯЦ
Header set Cache-Control "max-age=2592000"
# НА НЕДЕЛЮ
Header set Cache-Control "max-age=604800"
# НА ДЕНЬ
Header set Cache-Control "max-age=43200"
Предотвращение кражи изображений и файлов
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\\.)?askapache.com/.*$ [NC]
RewriteRule \\.(gif|jpg|swf|flv|png)$ http://www.askapache.com/evil-hotlinker.… [R=302,L]
Замена стандартных сообщений об ошибке
ErrorDocument 404 /favicon.ico
ErrorDocument 403 https://secure.htaccesselite.com
ErrorDocument 404 /cgi-bin/error.php
ErrorDocument 400 /cgi-bin/error.php
ErrorDocument 401 /cgi-bin/error.php
ErrorDocument 403 /cgi-bin/error.php
ErrorDocument 405 /cgi-bin/error.php
ErrorDocument 406 /cgi-bin/error.php
ErrorDocument 409 /cgi-bin/error.php
ErrorDocument 413 /cgi-bin/error.php
ErrorDocument 414 /cgi-bin/error.php
ErrorDocument 500 /cgi-bin/error.php
ErrorDocument 501 /cgi-bin/error.php
NB!: Вы можете также использовать внешние ссылки, но не делайте внешних ссылок на Ваш собственный сайт, чтобы не вредить его продвижению в поисковых системах.
Операция аутентификации
Запрос пароля на один файл:
AuthName "Prompt"
AuthType Basic
AuthUserFile /home/askapache.com/.htpasswd
Require valid-user
Защита паролем нескольких файлов:
AuthName "Development"
AuthUserFile /.htpasswd
AuthType basic
Require valid-user
Примеры использования директивы Allow:
# Частичное разрешение (доменное имя)
Allow from 10.1.0.0/255.255.0.0
# Полное разрешение на 1 IP
Allow from 10.1.2.3
# Полное разрешение на несколько IP
Allow from 192.168.1.104 192.168.1.205
# Разрешение при совпадении части IP адреса с образцом
Allow from 10.1
Allow from 10 172.20 192.168.2
# разрешение для пары сеть/маска подсети
Allow from 10.1.0.0/255.255.0.0
Использование переменных окружения в зависимости от посетителя:
SetEnvIf User-Agent ^KnockKnock/2\\.0 let_me_in
Order Deny,Allow
Deny from all
Allow from env=let_me_in
Разрешение для домена (при запрете для субдомена)
Order Allow,Deny
Allow from apache.org
Deny from foo.apache.org
Доступ с IP адреса без пароля, а не с IP – по паролю
AuthUserFile /home/www/site1-passwd
AuthType Basic
AuthName MySite
Require valid-user
Allow from 172.17.10
Satisfy Any
Блокирование доступа к файлам в определенные часы
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# В 16 часов закрыть доступ к файлам
RewriteCond %{TIME_HOUR} ^16$
RewriteRule ^.*$ - [F,L]
Пример базового файла .htaccess
Автор пользуется им, когда начинает делать новый сайт. По мере работы, оттуда удаляются куски кода или снимаются комментарии.
# Базовые установки
##############################################
Options +ExecCGI -Indexes
DirectoryIndex index.php index.html index.htm
### Умолчания ###
ServerSignature Off
AddType video/x-flv .flv
AddType application/x-shockwave-flash .swf
AddType image/x-icon .ico
AddDefaultCharset UTF-8
DefaultLanguage en-US
SetEnv TZ America/Indianapolis
SetEnv SERVER_ADMIN webmaster@^^SITE^^.^^TLD^^
### FAST-CGI ###
AddHandler fastcgi-script fcgi
AddHandler php-cgi .php
Action php-cgi /cgi-bin/php5-wrapper.fcgi
# Заголовки и кэширование
##############################################
#### КЭШИРОВАНИЕ ####
# НА ГОД
Header set Cache-Control "max-age=2592000"
# НА НЕДЕЛЮ
Header set Cache-Control "max-age=604800"
# НА 10 МИНУТ
Header set Cache-Control "max-age=600"
# НЕ КЭШИРОВАТЬ
Header unset Cache-Control
# ПЕРЕОПРЕДЕЛЕНИЯ И ПЕРЕНАПРАВЛЕНИЯ
##############################################
### SEO редирект ###
Redirect 301 /2006/uncategorized/htaccesselitecom-aboutus.html http://www.^^SITE^^.^^TLD^^
### ПЕРЕОПРЕДЕЛЕНИЯ ###
RewriteEngine On
RewriteBase /
# АВТОРИЗАЦИЯ
##############################################
AuthName "^^SITE^^.^^TLD^^"
Require valid-user
AuthUserFile /^^SITE^^.^^TLD^^/.htpasswd
AuthType basic
Отзывы и комментарии
< Предыдущая | Следующая > |
---|
Комментарии
RSS лента комментариев этой записи