Added support for Alias and Locations, as well as enabling Dav

This commit is contained in:
root 2015-12-09 05:48:08 +00:00 committed by Nigel Sim
parent c3393a4910
commit 3742b40f86
2 changed files with 51 additions and 5 deletions

View File

@ -30,6 +30,11 @@
'Require': 'all granted', 'Require': 'all granted',
'AllowOverride': 'None', 'AllowOverride': 'None',
}, },
'Location': {
'Order': 'allow,deny',
'Allow': 'from all',
'Require': 'all granted',
},
} %} } %}
<VirtualHost {{ vals.interface }}:{{ vals.port }}> <VirtualHost {{ vals.interface }}:{{ vals.port }}>
@ -59,6 +64,10 @@
{% endif %} {% endif %}
{% endif %} {% endif %}
{% for loc, path in site.get('Alias', {}).items() %}
Alias {{ loc }} {{ path }}
{% endfor %}
{% for path, dir in site.get('Directory', {}).items() %} {% for path, dir in site.get('Directory', {}).items() %}
{% set dvals = { {% set dvals = {
'Options': dir.get('Options', vals.Directory.Options), 'Options': dir.get('Options', vals.Directory.Options),
@ -66,19 +75,21 @@
'Allow': dir.get('Allow', vals.Directory.Allow), 'Allow': dir.get('Allow', vals.Directory.Allow),
'Require': dir.get('Require', vals.Directory.Require), 'Require': dir.get('Require', vals.Directory.Require),
'AllowOverride': dir.get('AllowOverride', vals.Directory.AllowOverride), 'AllowOverride': dir.get('AllowOverride', vals.Directory.AllowOverride),
'Dav': dir.get('Dav', False),
} %} } %}
{% if path == 'default' %}{% set path = vals.Directory_default %}{% endif %} {% if path == 'default' %}{% set path = vals.Directory_default %}{% endif %}
<Directory "{{ path }}"> <Directory "{{ path }}">
{% if dir.get('Options') != False %}Options {{ dvals.Options }}{% endif %} {% if dvals.get('Options') != False %}Options {{ dvals.Options }}{% endif %}
{% if apache.use_require %} {% if apache.use_require %}
{% if dir.get('Require') != False %}Require {{dvals.Require}}{% endif %} {% if dvals.get('Require') != False %}Require {{dvals.Require}}{% endif %}
{% else %} {% else %}
{% if dir.get('Order') != False %}Order {{ dvals.Order }}{% endif %} {% if dvals.get('Order') != False %}Order {{ dvals.Order }}{% endif %}
{% if dir.get('Allow') != False %}Allow {{ dvals.Allow }}{% endif %} {% if dvals.get('Allow') != False %}Allow {{ dvals.Allow }}{% endif %}
{% endif %} {% endif %}
{% if dir.get('AllowOverride') != False %}AllowOverride {{ dvals.AllowOverride }}{% endif %} {% if dvals.get('AllowOverride') != False %}AllowOverride {{ dvals.AllowOverride }}{% endif %}
{% if dvals.get('Dav') != False %}Dav On{% endif %}
{% if dir.get('Formula_Append') %} {% if dir.get('Formula_Append') %}
{{ dir.Formula_Append|indent(8) }} {{ dir.Formula_Append|indent(8) }}
@ -86,6 +97,29 @@
</Directory> </Directory>
{% endfor %} {% endfor %}
{% for path, loc in site.get('Location', {}).items() %}
{% set lvals = {
'Order': loc.get('Order', vals.Location.Order),
'Allow': loc.get('Allow', vals.Location.Allow),
'Require': loc.get('Require', vals.Location.Require),
'Dav': loc.get('Dav', False),
} %}
<Location "{{ path }}">
{% if apache.use_require %}
{% if lvals.get('Require') != False %}Require {{lvals.Require}}{% endif %}
{% else %}
{% if lvals.get('Order') != False %}Order {{ lvals.Order }}{% endif %}
{% if lvals.get('Allow') != False %}Allow {{ lvals.Allow }}{% endif %}
{% endif %}
{% if lvals.get('Dav') != False %}Dav On{% endif %}
{% if loc.get('Formula_Append') %}
{{ loc.Formula_Append|indent(8) }}
{% endif %}
</Location>
{% endfor %}
{% if site.get('Formula_Append') %} {% if site.get('Formula_Append') %}
{{ site.Formula_Append|indent(4) }} {{ site.Formula_Append|indent(4) }}
{% endif %} {% endif %}

View File

@ -81,6 +81,18 @@ apache:
# ProxyPassReverseSource: '/' # ProxyPassReverseSource: '/'
# ProxyPassReverseTarget: 'http://www.example.net' # ProxyPassReverseTarget: 'http://www.example.net'
Alias:
/docs: /usr/share/docs
Location:
/docs:
Order: allow,deny # For Apache < 2.4
Allow: from all # For apache < 2.4
Require: all granted # For apache > 2.4.
Formula_Append: |
Additional config as a
multi-line string here
Formula_Append: | Formula_Append: |
Additional config as a Additional config as a
multi-line string here multi-line string here