# Module Accesscontrol

    module Accesscontrol: sig .. end

Accesscontrol: Conditional access to some sites

If you want to use this extension with Ocsigen Server's configuration file,

1. have a look at the .
2. If you are using Ocsigen Server as a library, use the interface described
3. here. Each of these functions behaves exactly as its configuration file counterpart. +

This module belongs to ocamlfind package `ocsigenserver.ext.accesscontrol`.

Example of use (with ):

    let _ =
      Ocsigen_server.start
        [ Ocsigen_server.host ~regexp:".*"
            [ Accesscontrol.(
                if_ (not_ ssl)
                  [ Redirectmod.run
                      ~redirection:
                        (Redirectmod.create_redirection ~full_url:false
                           ~regexp:"(.* )" "https://yourdomain.org/\\1")
                      () ]
                  [ ... ]) ]
        ]

    type condition

    val ip : string -> condition

    val port : int -> condition

    val ssl : condition

    val header : name:string -> regexp:string -> condition

    val method_ : Cohttp.Code.meth -> condition

    val protocol : Cohttp.Code.version -> condition

    val path : regexp:string -> condition

    val and_ : condition list -> condition

    val or_ : condition list -> condition

    val not_ : condition -> condition

    val if_ : condition ->
           Ocsigen_server.instruction list ->
           Ocsigen_server.instruction list -> Ocsigen_server.instruction

    val iffound : Ocsigen_server.instruction list -> Ocsigen_server.instruction

    val ifnotfound : ?code:string -> Ocsigen_server.instruction list -> Ocsigen_server.instruction

    val notfound : Ocsigen_server.instruction

    val nextsite : Ocsigen_server.instruction

    val nexthost : Ocsigen_server.instruction

    val stop : Ocsigen_server.instruction

    val forbidden : Ocsigen_server.instruction

    val allow_forward_for : ?check_equal_ip:bool -> unit -> Ocsigen_server.instruction

    val allow_forward_proto : unit -> Ocsigen_server.instruction

    val section : Lwt_log_core.section

Use Lwt_log.Section.set_level in order to change the log level