###############################################################
# Konfiguration Apache2 für dta-beta.kaskade.dwds.de
# inklusive der Konfiguration aller beteiligten Microsites,
# die im Laufe der Zeit entwickelt wurden
###############################################################

##-- Enable this modules
##-- sudo a2enmod rewrite
##-- sudo a2enmod proxy
##-- sudo a2enmod proxy_http
##-- add to /etc/hosts or C:\windows\system32\etc\hosts
##-- 194.95.188.59   dta-beta.kaskade.dwds.de
##-- Take care of ProxyPassReverse in case your backend shows up in URLs!

ServerTokens Prod

<Proxy *>
   Order allow,deny
   Allow from all
</Proxy>

<VirtualHost *:80>
	ServerAdmin markus.raulf@bbaw.de

    ServerName      dta-beta.kaskade.dwds.de
    ServerAlias     dta-beta.localhost

	DocumentRoot /var/www/dta/root

	ErrorLog        ${APACHE_LOG_DIR}/dta-20-error.log
	CustomLog       ${APACHE_LOG_DIR}/dta-20-access.log combined

	AddDefaultCharset       utf-8

	##-- Don't proxy any request beginning with the keyword "/static".
	##-- The ! (exclamation mark) keyword in ProxyPass means "don't".
    ProxyPass /favicon.ico !
    ProxyPass /dtaq !

	##-- Templates, static files
    ProxyPass /static !
	<Directory /var/www/dta/root/static>
        AllowOverride All
        Order allow,deny
        allow from all
        Options -Indexes
        <IfModule mod_headers.c>
            <FilesMatch "\.(gif|ico|jpeg|jpg|png|svg|css|js|woff|woff2|mp3)$">
                Header set Cache-Control "max-age=604800, public"
            </FilesMatch>
        </IfModule>        
 	</Directory>
    Alias /static   /var/www/dta/root/static

	<Location />
		Require all granted
		# ErrorDocument 500 "Aufgrund von Wartungsarbeiten steht der angeforderte Dienst momentan nicht zur Verfuegung."
      	ErrorDocument 500 "Leider konnte der angeforderte Dienst nicht geladen werden. Bitte versuchen Sie es erneut. Bei anhaltenden Problemen kontaktieren Sie uns bitte unter <a href='mailto:redaktion@deutschestextarchiv.de'>redaktion@deutschestextarchiv.de</a>."

		# fw: Bots
    	deny from 148.251.124.173
		deny from 193.109.199.35
		deny from 188.143.232.37
		deny from 46.198.23.50
		deny from 176.92.19.90
		deny from 178.200.132.167
		deny from 94.140.138.21
		deny from 42.49.180.68
		deny from 185.6.8.7
		deny from 52.143.140.170
		#deny from 141.58.127.189
		#deny from 141.58.127.190
		#deny from 141.58.127.60
		#deny from 141.58.127.62
        deny from 108.179.220.169
		##-- linguee bots
		deny from 62.138.14.164
		deny from 62.138.14.165

		##-- moo: CAB bombardment, 2018-03-14
		##-- (Leonard Konle, Würzburg Mitarbeiter von F. Jannidis)
		#deny from 132.187.81.109

        allow from all
	</Location>

    ProxyPass /robots.txt !
    Alias /robots.txt /var/www/robots.txt
    ProxyPass /googlea69795b485150ddc.html !
    Alias /googlea69795b485150ddc.html /var/www/dta/root/static/googlea69795b485150ddc.html
    
    ProxyPass /clarin-kooperationen !
    Alias /clarin-kooperationen /home/wiegand/src/dtadoc/clarin-kooperationen.html

    ProxyPass /doku/nrhz !
    ProxyPass /nrhz !
    Redirect /doku/nrhz /nrhz
    Alias /nrhz /home/wiegand/public_html/nrhz
    <Location /nrhz>
      AddHandler cgi-script .pl
      Options +ExecCGI
    </Location>

    Alias /rem /home/wiegand/public_html/rem
    ProxyPass /rem !
    <Location /rem>
      AddHandler cgi-script .pl
      Options +ExecCGI
    </Location>

    Alias /novellenschatz /home/wiegand/public_html/novellenschatz
    ProxyPass /novellenschatz !
    <Location /novellenschatz>
      AddHandler cgi-script .pl
      Options +ExecCGI
    </Location>

    Alias /sanders-briefe /home/wiegand/public_html/sanders-briefe
    ProxyPass /sanders-briefe !
    <Location /sanders-briefe>
      AddHandler cgi-script .pl
      Options +ExecCGI
    </Location>

    Alias /bruemmer /home/wiegand/public_html/bruemmer.pl
    ProxyPass /bruemmer !
    <Location /bruemmer>
      AddHandler cgi-script .pl
      Options +ExecCGI
    </Location>

    ProxyPass /grenzboten !
    Alias /grenzboten /home/wiegand/public_html/grenzboten

    ProxyPass /dsdk !
    Alias /dsdk /home/wiegand/public_html/dsdk

    ProxyPass /doku/basisformat/funeralschriften !
    Alias /doku/basisformat/funeralschriften /home/matthias/public_html/funeralschrift

    ProxyPassMatch ^/doku/basisformat_ !

    Redirect /doku/basisformat_einleitung /doku/basisformat/einfuehrung.html
    Redirect /doku/basisformat_header /doku/basisformat/metadaten.html
    Redirect /doku/basisformat_texterschliessung_formal /doku/basisformat/texterschliessung_formal.html
    Redirect /doku/basisformat_texterschliessung_inhaltlich /doku/basisformat/texterschliessung_inhaltlich.html
    Redirect /doku/basisformat_zeitungen /doku/basisformat/zeitung.html
    Redirect /doku/basisformat_manuskripte /doku/basisformat/manuskript.html
    Redirect /doku/basisformat_table_header /doku/basisformat/uebersichtHeader.html
    Redirect /doku/basisformat_table /doku/basisformat/uebersichtText.html
    Redirect /doku/richtlinien /doku/basisformat/transkription.html
    Redirect /doku/basisformat_en /doku/basisformat/introduction_en.html
    Redirect /doku/basisformat_anleitung /doku/basisformat/benutzungDTABfSchema.html
    Redirect /doku/basisformat_konventionen /doku/basisformat/zurDokumentation.html
    Redirect /doku/basisformat_dokumentstruktur /doku/basisformat/grundstrukturDokument.html

    ProxyPass /doku/basisformat !
    AliasMatch "^/doku/basisformat(.*)" "/home/haaf/public_html/dtabf/dokumentation/webhelp-responsive$1"

    ProxyPass /files/vorlage_basisformat.xml !
    Alias /files/vorlage_basisformat.xml /home/haaf/public_html/dtabf/vorlage_basisformat.xml

    ProxyPassMatch ^/basisformat_ !
    Alias /basisformat_all.odd /home/haaf/public_html/dtabf/schema/basisformat_all.odd
    Alias /basisformat_all.xml /home/haaf/public_html/dtabf/schema/basisformat_all.xml
    Alias /basisformat_ms.odd /home/haaf/public_html/dtabf/schema/basisformat_ms.odd
    Alias /basisformat_ms.rng /home/haaf/public_html/dtabf/schema/basisformat_ms.rng
    Alias /basisformat.odd /home/haaf/public_html/dtabf/schema/basisformat.odd
    Alias /basisformat_ohne_header.odd /home/haaf/public_html/dtabf/schema/basisformat_ohne_header.odd
    Alias /basisformat_ohne_header.rng /home/haaf/public_html/dtabf/schema/basisformat_ohne_header.rng
    Alias /basisformat_phase1.odd /home/haaf/public_html/dtabf/schema/basisformat_phase1.odd
    Alias /basisformat_phase1.rng /home/haaf/public_html/dtabf/schema/basisformat_phase1.rng
    ProxyPassMatch ^/basisformat. !
    Alias /basisformat.rng /home/haaf/public_html/dtabf/schema/basisformat.rng
    Alias /basisformat.sch /home/haaf/public_html/dtabf/schema/basisformat.sch
    ProxyPass /cmdi_teiHeader.xsd ! 
    Alias /cmdi_teiHeader.xsd /home/haaf/public_html/dtabf/schema/cmdi_teiHeader.xsd

    ProxyPass /caberr !
    Redirect /caberr http://kaskade.dwds.de/caberr

    ProxyPass /doku/basisformat-kompakt !
    Redirect /doku/basisformat-kompakt http://www.deutschestextarchiv.de/doku/basisformat_table
    ProxyPass /leseansicht !
    Redirect /leseansicht http://www.deutschestextarchiv.de/dtar/
    ProxyPass /dtae/import/wikisource !
    Redirect /dtae/import/wikisource http://www.deutschestextarchiv.de/dtae/submit/wikisource
    ProxyPass /dtaq/help/basisformat_dokumentstruktur !
    Redirect /dtaq/help/basisformat_dokumentstruktur http://www.deutschestextarchiv.de/doku/basisformat
    ProxyPass /dtaq/help/richtlinien !
    Redirect /dtaq/help/richtlinien http://www.deutschestextarchiv.de/doku/richtlinien

    ProxyPass /dtae-dlc !
    RedirectMatch /dtae-dlc http://kaskade.dwds.de/~wiegand/dtae-dlc.html
    ProxyPass /dtae-mpi !
    RedirectMatch /dtae-mpi http://kaskade.dwds.de/~wiegand/dtae-dlc.html

    RewriteEngine On

    RewriteRule ^/([0-9]{5}\w*)$ http://www.deutschestextarchiv.de/book/show/$1 [L]
    RewriteRule ^/([\w-]+_(?:[\w-]+_)+\w+)/?$ http://www.deutschestextarchiv.de/book/show/$1 [L]
    RewriteRule ^/([3-5]\d{5}\w*)/?$ http://www.deutschestextarchiv.de/book/show/$1 [L]
    RewriteRule ^/(63[\dX]{7})$ http://www.deutschestextarchiv.de/book/show/$1 [L]
    RewriteRule ^/(rechnungsbuch\w+)$ http://www.deutschestextarchiv.de/book/show/$1 [L]

    RewriteRule ^/([0-9]{5}\w*)/([0-9]+)/?$ http://www.deutschestextarchiv.de/book/view/$1/$2 [L]
    RewriteRule ^/([\w-]+_(?:[\w-]+_)+\w+)/([0-9]+)/?$ http://www.deutschestextarchiv.de/book/view/$1/$2 [L]
    RewriteRule ^/([3-5]\d{5}\w*)/([0-9]+)/?$ http://www.deutschestextarchiv.de/book/view/$1/$2 [L]
    RewriteRule ^/(63[\dX]{7})/([0-9]+)/?$ http://www.deutschestextarchiv.de/book/view/$1/$2 [L]
    RewriteRule ^/(rechnungsbuch\w+)/([0-9]+)/?$ http://www.deutschestextarchiv.de/book/view/$1/$2 [L]

    RewriteRule ^/cab([/\?].*)?$ http://www.deutschestextarchiv.de/demo/cab$1 [R=307,NE,L]
    #RewriteRule ^/public/cab([/\?].*)?$ http://www.deutschestextarchiv.de/demo/cab$1 [R=307,NE,L]
    #RewriteRule ^/public/cab([/\?].*)?$ http://www.deutschestextarchiv.de/demo/cab$1 [R=307,NE,L]
    #RewriteRule ^/public/cab-ce-plugin([/\?].*)?$ http://www.deutschestextarchiv.de/demo/cab-ce-plugin$1 [R=307,NE,L]

    RewriteRule ^/dtaq/web/api/(.*)$ http://www.deutschestextarchiv.de/api/$1 [L]
    RewriteRule ^/dtaq/files/(.*)$ http://www.deutschestextarchiv.de/files/$1 [L]

	##-- changed dirnames
	RewriteRule ^/(.*)klopstock_messias04_1769(.*)$ http://www.deutschestextarchiv.de/$1klopstock_messias03_1769$2 [L]

	##-- aliases: /demo/cab
    # ProxyPass /cab !
	# Alias /cab/	/home/moocow/public_html/demo/cab/
    ProxyPassMatch ^/demo/cab !
	Alias /demo/cab /home/moocow/public_html/demo/cab
	Alias /demo/cab-ce-plugin /home/moocow/public_html/demo/cab-ce-plugin
	Alias /demo/caberr /home/moocow/public_html/demo/caberr
	ProxyPass /demo/dtaec !
    Alias /demo/dtaec /home/moocow/public_html/demo/dtaec

	##-- aliases: /public/cab (WebLicht doesn't like redirects)
    ProxyPassMatch ^/public/cab !
	Alias /public/cab /home/moocow/public_html/demo/cab
	Alias /public/cab-ce-plugin /home/moocow/public_html/demo/cab-ce-plugin

    ProxyPass /piwik !
	Alias /piwik /var/www/piwik
    ProxyPass /dtae-tools !
	Alias /dtae-tools /home/matthias/public_html/dtae
    ProxyPass /dtar !
	Alias /dtar /tmp/dtar.fcgi/
    ProxyPass /kosmos !
	Alias /kosmos /tmp/kosmos.fcgi/
    ProxyPass /romane !
	Alias /romane /tmp/romane.fcgi/

	##-- Proxy to Catalyst App!
    # SetEnvIf Request_URI . proxy-fcgi-pathinfo=unescape
    
    ProxyPreserveHost    On
	ProxyPass "/" "http://localhost:9007/"
    ProxyPassReverse "/" "http://localhost:9007/"

</VirtualHost>
