diff --git a/nginx/files/_limit.conf b/nginx/files/_limit.conf
index b60406b..7d1879e 100644
--- a/nginx/files/_limit.conf
+++ b/nginx/files/_limit.conf
@@ -38,28 +38,28 @@
       {%- if location.get('limit', {}).get('enabled', False) and location.limit.methods is defined %}
         {%- if location.limit.methods.ip is defined and location.limit.methods.get('ip').get('enabled',False) %}
       # Create whitelist for ip addresses
-geo $ip_{{ site_name }}_{{ path|replace('/','_') }} {
+geo $ip_{{ site_name }}_{{ path|regex_replace("[^A-Za-z0-9]", "") }} {
     default "enforce";
   {%- for ip in location.limit.methods.ip.get('ip_whitelist', []) %}
     {{ ip }} "whitelist";
   {%- endfor %}
 }
       # First, map all whitelisted IP's to the request query
-map $ip_{{ site_name }}_{{ path|replace('/','_') }} $limit_{{ site_name }}_{{ path|replace('/','_') }} {
+map $ip_{{ site_name }}_{{ path|regex_replace("[^A-Za-z0-9]", "") }} $limit_{{ site_name }}_{{ path|regex_replace("[^A-Za-z0-9]", "") }} {
     default {{ location.limit.methods.ip.get('query', '$binary_remote_addr') }};
     "whitelist" "";
 }
 
-limit_req_zone $limit_{{ site_name }}_{{ path|replace('/','_') }} zone=ip_{{ site_name }}_{{ path|replace('/','_') }}:{{ location.limit.methods.ip.get('size', '10m') }} rate={{ location.limit.methods.ip.get('rate','10r/s') }};
+limit_req_zone $limit_{{ site_name }}_{{ path|regex_replace("[^A-Za-z0-9]", "") }} zone=ip_{{ site_name }}_{{ path|regex_replace("[^A-Za-z0-9]", "") }}:{{ location.limit.methods.ip.get('size', '10m') }} rate={{ location.limit.methods.ip.get('rate','10r/s') }};
       {%- endif %}
 
 {%- for method, method_data in location.limit.methods.items() %}
 {%- if method != 'ip' %}
-map $request_method $limit_{{ method }}_{{ site_name }}_{{ path|replace('/','_') }} {
+map $request_method $limit_{{ method }}_{{ site_name }}_{{ path|regex_replace("[^A-Za-z0-9]", "") }} {
     default "";
     {{ method|upper }} "limit_{{ method }}";
 }
-limit_req_zone $limit_{{ method }}_{{ site_name }}_{{ path|replace('/','_') }} zone={{ method }}_{{ site_name }}_{{ path|replace('/','_') }}:{{ location.limit.methods.get(method,{}).get('size', '10m') }} rate={{ location.limit.methods.get(method,{}).get('rate','10r/s') }};
+limit_req_zone $limit_{{ method }}_{{ site_name }}_{{ path|regex_replace("[^A-Za-z0-9]", "") }} zone={{ method }}_{{ site_name }}_{{ path|regex_replace("[^A-Za-z0-9]", "") }}:{{ location.limit.methods.get(method,{}).get('size', '10m') }} rate={{ location.limit.methods.get(method,{}).get('rate','10r/s') }};
 {%- endif %}
 {%- endfor %}
       {%- endif %}
diff --git a/nginx/files/proxy.conf b/nginx/files/proxy.conf
index 7aac4a4..ffa8d2c 100644
--- a/nginx/files/proxy.conf
+++ b/nginx/files/proxy.conf
@@ -149,7 +149,7 @@
       {%- if location.limit is defined  and location.limit.methods is defined %}
         {%- for method, method_data in location.limit.methods.items() %}
           {%- if method_data.get('enabled', False) %}
-      limit_req zone={{ method }}_{{ site_name+'_'+path|replace('/','_') }}{% if method_data.get('burst', False) %} burst={{ method_data.burst }}{% endif %}{% if method_data.get('nodelay', False) %} nodelay{% endif %};
+      limit_req zone={{ method }}_{{ site_name+'_'+path|regex_replace("[^A-Za-z0-9]", "") }}{% if method_data.get('burst', False) %} burst={{ method_data.burst }}{% endif %}{% if method_data.get('nodelay', False) %} nodelay{% endif %};
           {%- endif %}
         {%- endfor %}
 
