Omdirigera alla förfrågningar till HTTPS om de kommer åt filer under / säker /

Författare:Lars Nyström
Uppdaterad:27 maj 2025

För att ställa in en omdirigering med mod_rewrite för Apache, följ dessa steg:

  1. Aktivera omskrivningsmodulen:

    • På RHEL-baserade system (som CentOS eller Fedora), se till att omskrivningsmodulen är aktiverad genom att kontrollera om LoadModule rewrite_module modules/mod_rewrite.so finns i din huvudsakliga Apache-konfigurationsfil.
    • På Debian-baserade system (som Ubuntu), aktivera det med:
      sudo a2enmod rewrite
      
  2. Placera omskrivningsreglerna:

    • Om du konfigurerar detta för en specifik domän lägger du till dessa regler i din VirtualHost-konfigurationsfil.
    • För konfigurationer för en webbplats placerar du dem i .htaccess-filen.
  3. Lägg till följande mod_rewrite-direktiv:

RewriteEngine On

RewriteCond %{REQUEST_URI} ^/secure/(.*) 
RewriteRule ^/?(.*) https://www.example.com/secure/$1 [R=301,L]

Förklaring:

  • RewriteEngine On: Aktiverar omskrivningsmodulen.
  • RewriteCond %{REQUEST_URI} ^/secure/(.*): Detta villkor kontrollerar om begäran URI börjar med /secure/. (.*) fångar alla vägar som följer /secure/.
  • RewriteRule ^/?(.*) https://www.example.com/secure/$1 [R=301,L]: Den här regeln omdirigerar alla begäranden som matchar villkoret till https://www.example.com/secure/ följt av den infångade sökvägen. Flaggorna:
    • R=301: Utfärdar en 301 (permanent) omdirigering.
    • L: Tillåter omskrivningsmotorn att fortsätta bearbetningen efter omdirigeringen.

Anmärkningar:

  • Tillfällig omdirigering: Ersätt R=301 med R=302 för en tillfällig omdirigering.
  • Testning: Rensa webbläsarens cache och testa åtkomst till /secure/ via både HTTP och HTTPS för att säkerställa att omdirigeringen fungerar korrekt.
  • ServerName: Se till att VirtualHost-konfigurationen anger ServerName till www.example.com för att omdirigeringen ska fungera korrekt.