.htaccess w PHP Fusion v9 – krótkie wyjaśnienie reguł (czytaj przed użyciem)Poniżej najważniejsze reguły z pliku .htaccess, z krótkim opisem co robią i kiedy ich NIE używać.Pełny plik wrzucam jako załącznik do pobrania – większość i tak go tylko wgra 😉Ten post jest po to, żebyś wiedział co ewentualnie usunąć lub zmienić.
PodstawyWyłącza listowanie katalogówBezpieczne – można zostawić zawszeWymusza UTF-8 dla strony i zasobówBezpieczne – zalecaneAddDefaultCharset UTF-8AddCharset UTF-8 .html .css .js .svg .woff .woff2
Wymuszenie konkretnej wersji PHPUŻYWAĆ TYLKO jeśli serwer NIE ma wyboru wersji PHP w paneluJeśli serwer nie obsługuje PHP 7.3 – strona padnieAddType application/x-httpd-php73 .php
Ochrona plikówUkrywa informacje o serwerzeBlokada dostępu do plików wrażliwychBezpieczne – zalecane<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>
Blokowanie plików JSONBlokuje dostęp do plików .json (częsty cel skanerów)Jeśli korzystasz z API lub JSON publicznie – USUŃRewriteEngine OnRewriteRule ^[^/]+.json$ - [F,L]RewriteRule ^.+/.*.json$ - [F,L]
Nagłówki bezpieczeństwa i cacheNagłówki bezpieczeństwaHSTS DZIAŁA TYLKO jeśli masz HTTPS<IfModule mod_headers.c>Header set X-Content-Type-Options "nosniff"Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"</IfModule>
👉 Jeśli NIE masz HTTPS – usuń HSTS, inaczej:przeglądarka zapamięta HTTPS i strona może przestać się otwierać.
Cache dla statycznych plików (wydajność)Bezpieczne – zalecane<IfModule mod_expires.c>ExpiresActive OnExpiresByType 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>
Wymuszanie HTTPSWymuszenie HTTPSNIE DODAWAJ jeśli serwer NIE MA certyfikatu SSLGrozi pętlą przekierowań lub ostrzeżeniem o oszustwieRewriteCond %{HTTPS} offRewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Anti-scan / botyBlokada znanych nazw backdoorów i skanerówNie robimy wyjątków dla User-AgentRewriteCond %{REQUEST_URI} ^/(widgets|b|cachex|wpup|admin).php$ [NC]RewriteRule .* - [F,L]
Próby dostępu do plików WordPressaRewriteCond %{REQUEST_URI} ^/wp-.*.php$ [NC]RewriteRule . - [F,L]
Adresy bez .phpUmożliwia adresy bez rozszerzenia .phpDziała tylko jeśli plik PHP faktycznie istniejeRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME}.php -fRewriteRule ^(.*)$ $1.php
Router PHP Fusion – ZAWSZE NA KOŃCUGłówny router PHP FusionMUSI być ostatnią regułąRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-lRewriteCond %{REQUEST_URI} !^/(administration|config|index.php)RewriteRule ^(.*?)$ index.php [L]
Nie wklejaj w ciemno – HTTPS i PHP to najczęstsze pułapkiJeśli coś nie działa → komentuj sekcjamiPełny, gotowy plik .htaccess jest w załączniku (dostępny dla zalogowanych użytkowników).Pełny opis i kontekst:
https://phpfusion9.pl/artykul/83/mody...