Apache
Ursprünglich wurde Open2C klassisch für den Einsatz mit dem Apache-Webserver, dessen PHP-Modul und den bekannten .htaccess
-Konfigurationen entwickelt.
Die Mehrheit der Installationen verwendet auch heute noch dieses Setup.
Die Auswahl an geeignetem Hosting - sei es im Rahmen eines preisgünstigen Shared-Hostings, Managed-Hostings oder eigenem VPS - ist damit sehr groß, die Installation unkompliziert.
Rewrite
Der Apache-Webserver verfügt über das mod_rewrite
Modul über eine Rewrite Engine, mit der an den Webserver gerichtete Anfragen regelbasiert umgeschrieben werden können.
Insbesondere für das Konzept der sprechenden Pfade oder Slugs ist das Modul wichtig.
https://www.example.com/index.php?id=64,123
versus
https://www.example.com/neues-aus-der-oberpfalz
Apache-Direktiven, .htaccess
- die wichtigsten Anweisungen stehen in der
.htaccess
Datei im Hauptverzeichnis - Profis können die Anweisungen auch in die globale Konfiguration (virtuelle Hosts) packen und Verzeichnisse mit
.htaccess
-Dateien, die deny-Anweisungen enthalten, ebenso dort hinterlegen. Danach könnte man den Support von lokalen.htaccess
Dateien deaktivieren und von mehr Performance profitieren
Sicherheit
- Verzeichnis-Listing-Features des Webservers bitte immer deaktivieren
- sicherstellen, dass PHP-Dateien auch tatsächlich von PHP interpretiert und ausgeführt und nicht in Textform ausgeliefert werden
Sehen Sie sich die mitgelieferte .htaccess
-Datei genau an und nehmen Sie Anpassungen vor, die auf Ihren Anwendungsfall vielleicht genauer passen.
Beispielsweise könnten Sie Anpassungen der folgenden Art vornehmen:
# Don't display files in directories without index files.
Options -Indexes
# Set headers related to security, for example:
<IfModule mod_headers.c>
Header set X-Content-Type-Options nosniff
Header set X-Frame-Options sameorigin
Header set Content-Security-Policy "frame-ancestors 'self';"
Header set Referrer-Policy same-origin
</IfModule>
Mittlerweile ist es Standard, die Kommunikation mit dem Webserver über verschlüsselte Verbindungen zu führen. Wenn Sie Ihre Seite definitiv immer sicher anbieten, können Sie Ihren Webserver über einen Header den Browsern Ihrer Besucher mitteilen lassen, bei jedem Besuch von vorneherein den Verbindungsaufbau verschlüsselt zu starten:
# In this example a Browser that supports the header will start encrypted requests for a timespan of one year (Gemeinjahr)
# Set this direction only in contexts where you are in an SSL environment
Header always set Strict-Transport-Security "max-age=31536000;"
# This includes EVERY SUBDOMAIN also, use with caution!
# It tries to be smart and set the header if it detects an SSL environment. Verify it works in your setup.
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" "expr=%{HTTPS} == 'on'"
Wikipedia-Eintrag zur Strict-Transport-Security.
Performance
Open2C ist mit dem PHP-Modul des Apache-Webservers, aber auch über PHP-FPM lauffähig. Statische Dateien sind mit dem Open2C-Hash-Cache-Feature beliebig lange zwischenspeicherbar.
Wenn Ihr Projekt z.B. im Verzeichnis /var/www/docroot_parent/my-website
liegt, könnten Sie Apache anweisen, nicht bei jedem Request in allen übergeordneten Verzeichnissen nach .htaccess
-Dateien zu suchen:
<Directory />
AllowOverride none
deny from all
</Directory>
<Directory /var/>
AllowOverride none
deny from all
</Directory>
<Directory /var/www/>
AllowOverride none
deny from all
</Directory>
<Directory /var/www/docroot_parent/>
AllowOverride none
deny from all
</Directory>