# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.

# END WordPress


# Wordfence WAF
<Files ".user.ini">
<IfModule mod_authz_core.c>
	Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
	Order deny,allow
	Deny from all
</IfModule>
</Files>

# END Wordfence WAF
Options -Indexes

<files wp-config.php>
order allow,deny
deny from all
</files>


<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

# BEGIN block author scans
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
# END block author scans


# HTTP Security Headers
<IfModule mod_headers.c>
Header Set Content-Security-Policy: "frame-ancestors 'self'"
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
Header set X-Content-Type-Options "nosniff"
Header set X-Xss-Protection "1; mode=block"
Header set X-Frame-Options "SAMEORIGIN"
Header set Referrer-Policy "no-referrer"
Header set Permissions-Policy "accelerometer=(), autoplay=(self), camera=(), encrypted-media=(), fullscreen, geolocation=(self), gyroscope=(), magnetometer=(), microphone=(), midi=(); payment=(), picture-in-picture=('self'), usb=()"
</IfModule>

# Sorgt für GZIP beim Website Download der Browser; schnelleres Laden der Seiten
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript



<IfModule mod_headers.c>
	<filesMatch "\.(ico|jpe?g|png|gif|webp|swf)$">
		Header set Cache-Control "public"
	</filesMatch>
	<filesMatch "\.(css)$">
		Header set Cache-Control "public"
	</filesMatch>
	<filesMatch "\.(js)$">
		Header set Cache-Control "private"
	</filesMatch>
	<filesMatch "\.(x?html?|php)$">
		Header set Cache-Control "private, must-revalidate"
	</filesMatch>
</IfModule>

#Disable ETag
FileETag None
# END WP-Optimize Browser Cache
