--- /var/www/html/v1/sites/all/modules/purge/purge.inc	2015-03-03 11:58:21.000000000 +0200
+++ /var/www/html/v2/sites/all/modules/purge/purge.inc	2020-08-14 10:08:51.627776580 +0300
@@ -17,30 +17,41 @@
 function purge_urls($purge_urls) {
   // Get settings
   $proxy_urls = explode(' ', variable_get('purge_proxy_urls', 'http://localhost:80'));
+
   $purge_requests = array();
   $current_purge_request = 0;
 
-  // Find out the url parts we need from the urls to be purged
-  foreach ($purge_urls as $purge_url) {
-    $purge_url_parts = parse_url($purge_url);
-    // Determine the host
-    $purge_url_host = $purge_url_parts['host'];
-    // Add portnames to the host if any are set
-    if (array_key_exists('port', $purge_url_parts)) {
-      $purge_url_host = $purge_url_host . ":" . $purge_url_parts['port'];
+  // Process all urls for each proxy
+  foreach ($proxy_urls as $proxy_url) {
+    $proxy_url_parts = parse_url($proxy_url);
+    if (array_key_exists('path', $proxy_url_parts)) {
+      $main_url =  $proxy_url_parts['scheme'].'://'.$proxy_url_parts['host'].$proxy_url_parts['path'];
+    } else {
+      $main_url = $proxy_url_parts['scheme'].'://'.$proxy_url_parts['host'];
     }
-
-    // Process all urls for each proxy
-    foreach ($proxy_urls as $proxy_url) {
+      
+    // Find out the url parts we need from the urls to be purged
+    foreach ($purge_urls as $purge_url) {
+      $purge_url = $main_url.'/'.$purge_url;
+      $purge_url_parts = parse_url($purge_url);
+      // Determine the host
+      $purge_url_host = $purge_url_parts['host'];
+      // Add portnames to the host if any are set
+      if (array_key_exists('port', $purge_url_parts)) {
+        $purge_url_host = $purge_url_host . ":" . $purge_url_parts['port'];
+      }
+      
       // Add url and proxy url to the array for later processing
       $purge_requests[$current_purge_request]['purge_url'] = $purge_url;
       $purge_requests[$current_purge_request]['proxy_url'] = $proxy_url;
 
       // Select which method to use
-      $proxy_url_parts = parse_url($proxy_url);
+      //$proxy_url_parts = parse_url($proxy_url);
       if (array_key_exists('query', $proxy_url_parts)) {
         if (strstr($proxy_url_parts['query'], 'purge_method=get')) {
           $method = 'get';
+        }else {
+          $method = 'purge';
         }
       }
       else {
@@ -88,8 +99,8 @@
         $purge_requests[$current_purge_request]['headers'] = array("Host: " . $purge_url_host);
       }
       $current_purge_request++;
-    }
-  }
+    }//endOfInnerFor
+  }//endOfOuterFor
   // Issue the requests using curl (for now)
   $purge_request_results = purge_issue_requests_curl($purge_requests);
   return $purge_request_results;
