You are here

function advagg_install_s3fs_proxy_settings in Advanced CSS/JS Aggregation 7.2

Create proxy settings.

Return value

string Apache httpd.conf settings for the s3fs module.

1 call to advagg_install_s3fs_proxy_settings()
advagg_install_chk_urls in ./advagg.install
Make sure http requests to css/js files work correctly.

File

./advagg.install, line 2856
Handles Advanced Aggregation installation and upgrade tasks.

Code

function advagg_install_s3fs_proxy_settings() {
  list($css_path, $js_path) = advagg_get_root_files_dir();
  $position = strpos($css_path[0], '://');
  $dir = '';
  if ($position !== FALSE) {
    $dir = substr($css_path[0], $position + 3);
  }
  $css_target = str_replace($dir, '', file_create_url($css_path[0]));
  $position = strpos($js_path[0], '://');
  $dir = '';
  if ($position !== FALSE) {
    $dir = substr($js_path[0], $position + 3);
  }
  $js_target = str_replace($dir, '', file_create_url($js_path[0]));
  $scheme = parse_url($js_target, PHP_URL_SCHEME);
  $config = '';
  $extra = '';
  if ($scheme === 'http') {
    $port = '80';
  }
  elseif ($scheme === 'https') {
    $port = '443';
    $extra = "  SSLProxyEngine on\n";
  }
  $config .= "<VirtualHost *:{$port}>\n";
  $config .= "  ProxyRequests Off\n";
  $config .= $extra;
  $config .= "  <Proxy *>\n";
  $config .= "    Order deny,allow\n";
  $config .= "    Allow from all\n";
  $config .= "  </Proxy>\n";
  $config .= "  ProxyTimeout 4\n";
  $config .= "  ProxyPass {$GLOBALS['base_path']}s3fs-css/ {$css_target}\n";
  $config .= "  ProxyPassReverse {$GLOBALS['base_path']}s3fs-css/ {$css_target}\n";
  $config .= "  ProxyPass {$GLOBALS['base_path']}s3fs-js/ {$js_target}\n";
  $config .= "  ProxyPassReverse {$GLOBALS['base_path']}s3fs-js/ {$js_target}\n";
  $config .= "  ProxyErrorOverride On\n";
  $config .= "\n  ErrorDocument 404 {$GLOBALS['base_path']}index.php\n";
  $config .= "</VirtualHost>\n";
  return $config;
}