Thread Verfasser: Zbigniew@
Thread ID: 1921
Thread Info
Es gibt 1 Beiträge zu diesem Thema, und es wurde 28 Mal angesehen.  Ausserdem wurden Dateien angehängt.
 Thema drucken
htaccess in PHP Fusion v9 Kurze Erklärung der Regeln vor der Verwendung lesen
Zbigniew@
Bevor Sie Änderungen vornehmen: **Erstellen Sie immer eine Sicherheitskopie der Originaldatei**, da nicht garantiert werden kann, dass alle Regeln auf jedem Server funktionieren. Dieser Leitfaden erklärt kurz, was jede Regel bewirkt und wann sie nicht verwendet werden sollte.
Grundlagen
Verzeichnisauflistung deaktivieren – Sicher, kann immer aktiviert werden
Schützt Ihre Ordner vor unerwünschtem Zugriff.

Options -Indexes

UTF-8 für Seite und Ressourcen erzwingen – Sicher, empfohlen
Stellt sicher, dass alle Inhalte korrekt codiert angezeigt werden.

AddDefaultCharset UTF-8
AddCharset UTF-8 .html .css .js .svg .woff .woff2

Bestimmte PHP-Version erzwingen – NUR verwenden, wenn der Server keine PHP-Version im Panel auswählt
Wenn der Server PHP 7.3 nicht unterstützt, funktioniert die Seite nicht


AddType application/x-httpd-php73 .php

Dateischutz
Serverinformationen verbergen

ServerSignature Off

Zugriff auf sensible Dateien blockieren – Sicher, empfohlen
Schützt kritische Dateien vor unbefugtem Zugriff.

<Files .htaccess>Require all denied</Files>
<Files config.php>Require all denied</Files>
<Files fusion_error_log.log>Require all denied</Files>
<Files *.cache>Require all denied</Files>

JSON-Dateien blockieren
Blockiert den Zugriff auf .json-Dateien, die oft von Scannern genutzt werden. Wenn Sie API oder öffentliche JSON-Dateien verwenden, **entfernen**.

RewriteEngine On
RewriteRule ^[^/]+.json$ - [F,L]
RewriteRule ^.+/.*.json$ - [F,L]

Sicherheits-Header & Cache
Sicherheits-Header
HSTS funktioniert nur, wenn HTTPS aktiviert ist


<IfModule mod_headers.c>
Header set X-Content-Type-Options "nosniff"
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</IfModule>

Wenn **kein HTTPS** vorhanden ist, HSTS entfernen, sonst merkt sich der Browser HTTPS und die Seite kann nicht mehr laden.
Cache für statische Dateien (Performance) – Sicher, empfohlen

<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/javascript "access plus 1 year"
ExpiresByType font/woff2 "access plus 1 year"
</IfModule>

HTTPS erzwingen
Nur verwenden, wenn ein SSL-Zertifikat vorhanden ist
Andernfalls können Weiterleitungsschleifen oder Sicherheitswarnungen auftreten


RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Anti-Scan / Bots
Bekannte Backdoors und Scanner blockieren
Keine Ausnahmen für User-Agent


RewriteCond %{REQUEST_URI} ^/(widgets|b|cachex|wpup|admin).php$ [NC]
RewriteRule .* - [F,L]

Zugriffe auf WordPress-Dateien blockieren

RewriteCond %{REQUEST_URI} ^/wp-.*.php$ [NC]
RewriteRule . - [F,L]

URLs ohne .php
Ermöglicht URLs ohne Dateiendung .php. Funktioniert nur, wenn die Datei existiert.

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php

PHP Fusion Router – MUSS AM ENDE
Haupt-Router von PHP Fusion. Muss die letzte Regel sein.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_URI} !^/(administration|config|index.php)
RewriteRule ^(.*?)$ index.php [L]

Nicht blind übernehmen – HTTPS und PHP-Version sind die häufigsten Stolperfallen.
Wenn etwas nicht funktioniert ? kommentieren Sie sektionweise.

Der vollständige .htaccess-Datei ist im Anhang verfügbar (nur für angemeldete Benutzer).
Zbigniew@ hat folgende Datei angehängt:
htaccess_1.zip [1.42kB / 8 mal Heruntergeladen]
Information:
PHP Version: 8.0.x •  MySQL Version: Nicht ausgewählt •  PHP-Fusion: v9 Stable
 
Springe ins Forum: