# ----------------------------------------------------------------------
# MAIN SETTINGS AND OPTIONS
# ----------------------------------------------------------------------
DefaultLanguage en-US
AddDefaultCharset UTF-8
ServerSignature Off

# ----------------------------------------------------------------------
# Security
# ----------------------------------------------------------------------

#
# CORS : Allow Access Control Allow Origin for ZOHO domains (crmclicktodial)
#
SetEnvIf Request_URI "crmclicktodial" CRMCLICKTODIAL
Header add Access-Control-Allow-Private-Network true env=CRMCLICKTODIAL
SetEnvIf Origin "^https://phonebridge.zoho.com" ACAO=https://phonebridge.zoho.com
SetEnvIf Origin "^https://phonebridge.zoho.eu" ACAO=https://phonebridge.zoho.eu
SetEnvIf Origin "^https://phonebridge.zoho.in" ACAO=https://phonebridge.zoho.in
SetEnvIf Origin "^https://phonebridge.zoho.com.au" ACAO=https://phonebridge.zoho.com.au
Header add Access-Control-Allow-Origin %{ACAO}e env=ACAO
Header add Access-Control-Allow-Headers "X-Auth-Token" env=ACAO

# Allow OPTIONS for ZOHO domains needed by clicktodial functionality
#
# DENY REQUEST BASED ON REQUEST METHOD
RewriteCond %{HTTP:Origin} !^(https://phonebridge.zoho.com|https://phonebridge.zoho.eu|https://phonebridge.zoho.in|https://phonebridge.zoho.com.au)$
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS|HEAD)$ [NC]
RewriteRule ^.*$ - [F]


# Closing all folders
IndexIgnore */*

# ----------------------------------------------------------------------
# MIME Types
# ----------------------------------------------------------------------

AddType application/x-javascript .js
AddType application/x-shockwave-flash .swf
AddType audio/mpeg mp3
AddType image/svg+xml svg
AddType image/x-icon .ico
AddType video/mpeg mov
AddType video/x-flv flv

# ----------------------------------------------------------------------
# Rewrite Rules
# ----------------------------------------------------------------------

ErrorDocument 404 /index/notfound
ErrorDocument 403 /index/permission

# ----------------------------------------------------------------------
# MVC
# ----------------------------------------------------------------------

RewriteEngine On
RewriteBase /

# redirect login and logout pages to HTTPS
RewriteCond %{HTTPS} !=on
RewriteRule ^(login|logout)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

# proxy rules to forward requests directly to internal CGI
RewriteRule ^(provisioning.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(snom.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(aastra.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(xmlsetup.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(pnpservice.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(phonerecording.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(xmlservice.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(password_clip.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(clicktocall.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(clicktoactivate.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(quadroautoconfig.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(configcmdhandler.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(hiddenputconf.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(downloadbackup.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(downloadbackupint.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(backuprestoreconf.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(languageupload.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(uploadfile.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(loadlogo.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(vmplay.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(extvmplay.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(vmbvmplay.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(systemlogsdownload.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(downloadfile.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(playrecord.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(clicktodial.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(pnreg.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(setuid.cgi)$ http://127.0.0.1:8080/$1 [L,P]
RewriteRule ^(crmclicktodial)$ http://127.0.0.1:8080/clicktocall.cgi [L,P]

# SMS status callbacks from twilio
RewriteRule ^(sms/status.php)$ /twiliosms/status.php/$1 [L,P]

# WhatsApp Templates
RewriteRule ^(whatsapp/templates)$ /whatsapp/templates.php/$1 [L,P]

# rewrite - root / return ---> home
RewriteRule ^/?$ /home [L,R,QSA]
RewriteRule ^return$ /home [L,R,QSA]

# rewrite - help pages
RewriteRule ^help/yourext.*$ /index/help-extension [L]
RewriteRule ^help.*$ /index/help [L]

# file has size, is link, or is directory (is really there), use it
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

# otherwise, use the front controller
RewriteRule ^.*$ mvc.php [NC,L]

# ----------------------------------------------------------------------
# HEADERS, CACHING, AND OPTIMIZATION
# ----------------------------------------------------------------------


#<FilesMatch "\.(flv|gif|jpg|jpeg|png|ico)$">
#   Header set Cache-Control "max-age=2592000"
#</FilesMatch>

#<FilesMatch "\.(js|css|pdf|swf)$">
#   Header set Cache-Control "max-age=604800"
#</FilesMatch>

#<FilesMatch "\.(html|htm|txt)$">
#   Header set Cache-Control "max-age=600"
#</FilesMatch>

#<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
#   Header unset Cache-Control
#</FilesMatch>

#<FilesMatch ".(ttf|otf|eot|woff)$">
#    Header set Access-Control-Allow-Origin "*"
#</FilesMatch>

# ----------------------------------------------------------------------
# END OF FILE
# ----------------------------------------------------------------------
