П84 html, JavaScript, php и Mysql. Джентльменский набор Web-мастера



бет29/30
Дата11.10.2023
өлшемі6.95 Mb.
#480343
1   ...   22   23   24   25   26   27   28   29   30
Прохоренок Н.А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера (3-е издание, 2010) (1)

Управление доступом


Директива Order определяет порядок применения директив Allow (разре- шить) и Deny (запретить). Например, с помощью этих директив можно раз- решить доступ к папке только лицам, пришедшим с определенного IP-адреса или определенного домена.
Order deny, allow Deny from all
Allow from 192.168.0.1
Значение all указывает на все адреса. В качестве значений адреса можно указать неполный IP-адрес или неполное имя домена.

Для полного доступа к папке можно использовать следующий код:


Order allow, deny Allow from all
Если определено несколько критериев доступа к папке, то директива Satisfy задает, должны ли быть выполнены все условия (значение all) или хотя бы одно из условий (значение any).
AuthType Basic
AuthName "restricted area"
AuthUserFile "C:/Apache2/data/pass.conf"

require valid-user

Deny from all Allow from 127.0. Satisfy any
В этом примере, если клиент пришел с локального хоста, то он получит дос- туп к папке без пароля, а остальным будет выведено окно с запросом пароля.


      1. Регулярные выражения, используемые в директивах


Некоторые директивы позволяют использовать регулярные выражения. Эти выражения мало чем отличаются от регулярных выражений, используемых в JavaScript (см. разд. 3.15.10). В них можно использовать следующие мета- символы и специальные конструкции:

  • ^ — привязка к началу строки;

  • $ — привязка к концу строки;

  • [] — позволяет указать символы, которые могут встречаться на этом месте в строке. Можно перечислять символы подряд или указать диапа- зон через тире;

  • [^] — значение можно инвертировать, если после первой скобки указать символ ^. Таким образом можно указать символы, которых не должно быть на этом месте в строке.

Для использования специальных символов как обычных необходимо пе- ред специальным символом указать символ "\";



  • \d — любая цифра;

  • \w — любая латинская буква, цифра или знак подчеркивания;

  • \s — любой непечатный символ (пробел, табуляция, перевод страницы, новая строка или перевод каретки);

  • . (точка) — любой символ, кроме символа перевода строки (\n);

  • \D — не цифра;

  • \W — не латинская буква, не цифра и не знак подчеркивания;

  • \S — не непечатный символ;

  • \< и \> — пустая строка перед указанным шаблоном и после него;

  • {n} — в точности n вхождений предыдущего символа или подвыражения в строку;

  • {n,} — n или более вхождений символа в строку;

  • {n,m} — не менее n вхождений символа в строку и не более m. Цифры указываются через запятую без пробела;

  • * — ноль или большее число вхождений символа в строку;

 + — один или большее число вхождений символа в строку;

  • ? — ноль или одно число вхождений символа в строку;

  • n|m — один из символов n или m.

Регулярное выражение можно разбить на подвыражения с помощью круглых скобок. Каждая группа символов, соответствующих подвыражению, сохра- няется в памяти. В дальнейшем группу символов можно извлечь, указав по- сле символа $ номер скобки:
AliasMatch ^/manual(?:/(?:de|en|es|fr|ru))?(/.*)?$ "C:/Apache2/manual$1"


      1. Достарыңызбен бөлісу:
1   ...   22   23   24   25   26   27   28   29   30




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет