// include the latest version of the regex crate in your Cargo.toml
extern crate regex;
use regex::Regex;
fn main() {
let regex = Regex::new(r"(?m)^\s*# each header may be up to 12392 bytes\. This is the SPNEGO authentication header size limit.").unwrap();
let string = "<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>";
// result will be an iterator over tuples containing the start and end indices for each match in the string
let result = regex.captures_iter(string);
for mat in result {
println!("{:?}", mat);
}
}
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 Rust, please visit: https://docs.rs/regex/latest/regex/