Коротко о разном
Как в .htaccess сделать авторизацию по условию?
Как разрешить доступ к сайту всем пользователям с определенного IP адреса, а всем остальным разрешить доступ только по паролю через аутентификацию?
AuthName "Members Only" AuthType Basic AuthUserFile /www/passwd/.htpasswd require valid-user Order allow,deny Allow from 11.22.33.44 Deny from All Satisfy any
См. также документацию по Apache: Authentication, Authorization, and Access Control -> Satisfy
ошибка 404 (error 404, Apache, htaccess)
Рано или поздно у разработчика возникает мысль: "Нужна собственная обработка ошибки 404". Вот она посетила и тебя, коллега :-)
Для этого (все о чем здесь говорится относится к серверу Apache) нам нужно создать в корневом каталоге сайта файл .htaccess со следующим содержимым:
ErrorDocument 404 /errors/404.html
где файл 404.html - своя страница, поэтому не забудь создать каталог errors, а в нем файл 404.html
Конечно вместо /errors/404.html вы можете указать любой другой URL. При этом страница обработки ошибки 404 может быть и скриптом, например на PHP. Таким же образом можно обрабатывать самомстоятельно и другие ошибки.
ErrorDocument 403 /errors/error.php?403 ErrorDocument 404 /errors/error.php?404 ErrorDocument 500 /errors/error.php?500
Наиболее полезные ошибки: 403, 404, 500.
- 403 - пользователь не прошел аутентификацию, запрет на доступ.
- 404 - запрашиваемый документ (файл, директория) не найден.
- 500 - внутренняя ошибка сервера (например, ошибка в .htaccess файле).
Для чего нужен ETag заголовок HTTP, который выдает Apache?
При выдаче документа, основанного на файле (картинка, zip-файл и т.д.), Apache формирует в ответе заголовок ETag (объектная метка) . По сути ETag - это уникальный идентификатор документа, значение которого меняется при изменении документа. ETag используется при кэшировании документа. Этот заголовок сохраняется на клиенте, и в случае повторного обращения к документу позволяет браузеру обратиться к серверу с запросом 'If-None-Match', а сервер должен по значению ETag-метки определить, не изменился ли документ, и если нет, ответить кодом '304 Not Modified'.
В Apache значение ETag формируется из inode файла, размера файла, и времени его последней модификации (mtime). ETag в Apache равен 16-тиричному представлению Inode-FileSize-mtime, где mtime это Unix timestamp (количество секунд прошедших с 1 января 1900 года). Заголовок ETag появился в HTTP 1.1.
См. пример на PHP, вычисления ETag как в Apache
SMTP ответ "AUTH=LOGIN" - что это значит?
SMTP сервер на команду EHLO выдает список поддерживаемых им расширений. Если сервер поддерживает аутентификацию, то в ответе будет ключевое слово AUTH со списком параметров, определяющих поддерживаемые сервером методы аутентификации. Дык вот, строк с ключевым словом AUTH может быть и две.
Например:
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5 250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
А зачем? Так вот, строка в которой используется "AUTH=..." выдается некоторыми серверами для "кривых" клиентов (например, Outlook Express 4.0), которым нужен именно такой неправильный формат, чтобы понять, что они могут использовать SMTP аутентификацию.
К слову в черновом варианте №10 спецификации о SMTP аутентификации (draft-10 of SMTP AUTH spec) используется именно "AUTH=", а не "AUTH ". Но это было давно и не правда :-), на данный момент спецификация "RFC 2821 - Simple Mail Transfer Protocol" четко определяет формат ответа сервера на команду EHLO в котором нет знака "=".