$re = '/^\s*# each header may be up to 12392 bytes\. This is the SPNEGO authentication header size limit./m';
$str = '<VirtualHost 0.0.0.0:${JIVE_HTTPD_PORT}>
DocumentRoot "${JIVE_HOME}/var/www"
ErrorDocument 404 /___sbsstatic___/404.html
ErrorDocument 500 /___sbsstatic___/500.html
ErrorDocument 501 /___sbsstatic___/catchall.html
ErrorDocument 502 /___sbsstatic___/catchall.html
ErrorDocument 503 /___sbsstatic___/maintenance.html
ErrorDocument 504 /___sbsstatic___/maintenance.html
ErrorDocument 505 /___sbsstatic___/catchall.html
<Directory />
Options FollowSymLinks
Require all denied
</Directory>
<Directory ${JIVE_HOME}/applications/*/home/www>
Options FollowSymLinks
Require all granted
</Directory>
<Directory ${JIVE_HOME}/var/www/resources>
Options -Indexes
</Directory>
LogLevel info
CustomLog "${LOG_DIR}/jive-httpd-access.log" common
ErrorLog "${LOG_DIR}/jive-httpd-error.log"
RequestHeader set X-Forwarded-Secure "false"
ProxyRequests Off
ProxyPreserveHost on
Header edit Set-Cookie "(?<!;\\sHttpOnly)$" ";HttpOnly"
# The JCAPI-Token (CSRF protection via double-submit cookie) needs to accessible, so strip HttpOnly
Header edit Set-Cookie (JCAPI-Token=.*);\\s?HttpOnly$ $1
# each header may be up to 12392 bytes. This is the SPNEGO authentication header size limit.
LimitRequestFieldsize 12392
RewriteEngine On
RewriteRule ^/[0-9]\\.[0-9]\\.[0-9]{1,3}\\.[0-9a-f]{1,10}/images/(.*)$ /images/$1
RewriteRule ^/[0-9]\\.[0-9]\\.[0-9]{1,3}\\.[0-9a-f]{1,10}/scripts/(.*)$ /scripts/$1
RewriteRule ^/[0-9]\\.[0-9]\\.[0-9]{1,3}\\.[0-9a-f]{1,10}/styles/(.*)$ /styles/$1
RewriteRule ^/[0-9]\\.[0-9]\\.[0-9]{1,3}\\.[0-9a-f]{1,10}/resources/(.*)$ /resources/$1
RewriteRule ^/[0-9]\\.[0-9]\\.[0-9]{1,3}\\.[0-9a-f]{1,10}/__services/(.*)$ /__services/$1 [PT]
# Serve gzip compressed JS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\\.gz -s
RewriteRule ^(.*)\\.js $1\\.js\\.gz [QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \\.js\\.gz$ - [T=text/javascript,E=no-gzip:1]
# Replace double dashes on project urls to keep old links working on updated instances
RewriteRule ^(.*/projects/.*)--(.*)$ $1-$2 [L,R=301]
CacheMaxFileSize 5242880
CacheEnable mem /images/
CacheEnable mem /scripts/
CacheEnable mem /styles/
CacheEnable mem /resources/
CacheIgnoreHeaders Set-Cookie X-JIVE-USER-ID
# Header unset X-JIVE-USER-ID
ExpiresActive On
ExpiresDefault "now"
ExpiresByType image/gif "access plus 10 years"
ExpiresByType image/png "access plus 10 years"
ExpiresByType image/jpeg "access plus 10 years"
ExpiresByType image/x-icon "access plus 10 years"
ExpiresByType text/css "access plus 10 years"
ExpiresByType application/javascript "access plus 10 years"
ExpiresByType application/x-shockwave-flash "access plus 10 years"
<LocationMatch "\\.(woff|eot|ttf|svg)$">
ExpiresDefault "access plus 10 years"
</LocationMatch>
ProxyPass /___sbsstatic___/ !
ProxyPass /images/ !
ProxyPass /styles/ !
ProxyPass /scripts/ !
ProxyPass /resources/scripts/ !
ProxyPass /resources/images/ !
ProxyPass /resources/styles/ !
ProxyPass /resources/statics/ !
Include sites/proxies/*.conf
Include sites/conf.d/*.conf
</VirtualHost>
<IfDefine SSL>
Listen ${SSL_PORT}
<VirtualHost 0.0.0.0:${SSL_PORT}>
DocumentRoot "${JIVE_HOME}/var/www"
ErrorDocument 404 /___sbsstatic___/404.html
ErrorDocument 500 /___sbsstatic___/500.html
ErrorDocument 501 /___sbsstatic___/catchall.html
ErrorDocument 502 /___sbsstatic___/catchall.html
ErrorDocument 503 /___sbsstatic___/maintenance.html
ErrorDocument 504 /___sbsstatic___/maintenance.html
ErrorDocument 505 /___sbsstatic___/catchall.html
<Directory />
Options FollowSymLinks
Require all granted
SSLRequireSSL
</Directory>
<Directory ${JIVE_HOME}/var/www/resources>
Options -Indexes
</Directory>
LogLevel info
CustomLog "${LOG_DIR}/jive-httpd-ssl-access.log" common
ErrorLog "${LOG_DIR}/jive-httpd-ssl-error.log"
RequestHeader set X-Forwarded-Secure "true"
ProxyRequests Off
ProxyPreserveHost On
RewriteEngine On
RewriteRule ^/[0-9]\\.[0-9]\\.[0-9]{1,3}\\.[0-9a-f]{1,10}/images/(.*)$ /images/$1
RewriteRule ^/[0-9]\\.[0-9]\\.[0-9]{1,3}\\.[0-9a-f]{1,10}/scripts/(.*)$ /scripts/$1
RewriteRule ^/[0-9]\\.[0-9]\\.[0-9]{1,3}\\.[0-9a-f]{1,10}/styles/(.*)$ /styles/$1
RewriteRule ^/[0-9]\\.[0-9]\\.[0-9]{1,3}\\.[0-9a-f]{1,10}/resources/(.*)$ /resources/$1
RewriteRule ^/[0-9]\\.[0-9]\\.[0-9]{1,3}\\.[0-9a-f]{1,10}/__services/(.*)$ /__services/$1 [PT]
# Serve gzip compressed JS files if they exist and the client accepts gzip.
RewriteCond %{HTTP:Accept-encoding} gzip
RewriteCond %{REQUEST_FILENAME}\\.gz -s
RewriteRule ^(.*)\\.js $1\\.js\\.gz [QSA]
# Serve correct content types, and prevent mod_deflate double gzip.
RewriteRule \\.js\\.gz$ - [T=text/javascript,E=no-gzip:1]
# Replace double dashes on project urls to keep old links working on updated instances
RewriteRule ^(.*/projects/.*)--(.*)$ $1-$2 [L,R=301]
CacheMaxFileSize 5242880
CacheEnable mem /styles/
CacheEnable mem /images/
CacheEnable mem /scripts/
CacheEnable mem /resources/
CacheIgnoreHeaders Set-Cookie X-JIVE-USER-ID
# Header unset X-JIVE-USER-ID
ExpiresActive On
ExpiresDefault "now"
ExpiresByType image/gif "access plus 10 years"
ExpiresByType image/png "access plus 10 years"
ExpiresByType image/jpeg "access plus 10 years"
ExpiresByType image/x-icon "access plus 10 years"
ExpiresByType text/css "access plus 10 years"
ExpiresByType application/javascript "access plus 10 years"
ExpiresByType application/x-shockwave-flash "access plus 10 years"
<LocationMatch "\\.(woff|eot|ttf|svg)$">
ExpiresDefault "access plus 10 years"
</LocationMatch>
ProxyPass /___sbsstatic___/ !
ProxyPass /images/ !
ProxyPass /styles/ !
ProxyPass /scripts/ !
ProxyPass /resources/scripts/ !
ProxyPass /resources/images/ !
ProxyPass /resources/styles/ !
ProxyPass /resources/statics/ !
Include sites/proxies/*.conf
Include sites/conf.d/*.conf
SSLEngine on
SSLCipherSuite ALL:!ADH:!LOW:!EXP:!SSLv2:!NULL:RC4:RSA:HIGH:MEDIUM
SSLCertificateFile "${SSL_CERTIFICATE_FILE}"
SSLCertificateKeyFile "${SSL_CERTIFICATE_KEY_FILE}"
</VirtualHost>
</IfDefine>';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php