Jak dostosować plik .htaccess przed zmianą wersji PHP?

W niektórych przypadkach przed zmianą wersji PHP na 8 lub wyższą konieczna jest zmiana wpisów w plikach .htaccess. W ramach środowiska IdeaWebServer najwyższą obsługiwaną wersją interpretera PHP jest niewspierana już wersja 7.4.

Jeśli chcesz korzystać z aktualnych wersji interpretera PHP 8.0, 8.1 lub 8.2, skontaktuj się z nami, by zmienić środowisko serwera na nowsze środowisko Apache. Przed zmianą upewnij się jednak, że wpisy w plikach .htaccess są zgodne z dokumentacją, w przeciwnym razie na Twoich witrynach mogą pojawić się błędy.  

 

Plik .htaccess to charakterystyczny plik systemowy serwera WWW pozwalający na skonfigurowanie wielu jego elementów. Konfiguracja następuje za pomocą dyrektyw, czyli poleceń, które serwer ma wykonać. Ich składnia różni się między środowiskami, dlatego przed przełączeniem sprawdź, czy plik nie zawiera wpisów wskazanych poniżej. 
  1. Deny

    Jeśli w pliku .htaccess znajdziesz dyrektywę ‘Deny’, zweryfikuj, czy ma ona być wykonywana. To dyrektywa, która nie była obsługiwana w ramach IdeaWebServer, więc nie wprowadzała żadnych zmian. W obrębie środowiska Apache zacznie działać, upewnij się więc, że to poprawny wpis.  
    Przykład:  

    Order Deny,Allow 
    Deny from all 
    Allow from example.org
  2. Filesmatch

    Wpis ‘Filesmatch’ w pliku .htacces nie był obsługiwany w ramach IdeaWebServer. Wszystkie tego typu wpisy zaczną działać w ramach środowiska Apache, upewnij się więc, że prawidłowe i mają być wykonywane. 
    Przykład:

    <FilesMatch "\.tpl$"> 
    Deny from all 
    </FilesMatch>
  3. Order

    Jeśli w pliku .htaccess znajdują się wpisy ‘Order’ zweryfikuj, czy ich składnia jest poprawna. Pomyłki w obrębie tego wpisu mogą skutkować błędem 500 na stronie po zmianie środowiska na Apache. Zwróć uwagę na spację.

    Przykład błędnego wpisu:

    Order allow, deny
    

    Poprawny wpis:

    Order allow,deny 
  4. Options

    Nazwy opcji używane w ramach IdeaWebServer przez dyrektywę ‘Options’ nie są wspierane w środowisku Apache. Jeśli nie naniesiesz zmian we wpisach lub ich nie usuniesz, na Twojej stronie może pojawić się błąd 500.  
    Wpisy niewspierane w środowisku Apache:

    AllowDotFiles
    DirList 
    NoLog
    All
    SymLinksIfOwnerMatch
  5. AddType

    Wpisy ‘AddTypenie były wspierane w ramach IdeaWebServer, natomiast w środowisku Apache zaczną działać. Zweryfikuj, czy są one prawidłowe i powinny być wykonywane. 

    Przykład:

    <FilesMatch "\.php$"> 
        SetHandler application/x-httpd-php 
    </FilesMatch> 
  6. RedirectMatch

    Jeśli w pliku .htaccess znajdziesz dyrektywę ‘RedirectMatch’, zweryfikuj jej poprawność i upewnij się, że to prawidłowy wpis. Nie był on wspierany w środowisku IdeaWebServer, zacznie natomiast działać po przełączeniu na Apache.  

    Przykład:

    RedirectMatch 301 ^/(.*).htm$ https://www.pomoc.home.pl/$1.html
  7. Location

    Dyrektywa ‘Location’ nie jest wspierana przez środowisko Apache. Jeśli w pliku .htaccess odnajdziesz taki wpis, zamień go na: 

    <FilesMatch "\.php$"> 
    SetEnv CGI_HANDLER phpx 
    </FilesMatch>  

    W miejscu ‘x’ zawierając wersję PHP, jaka ma zostać ustawiona.

    Dla przykładu, jeśli obecnie wpis w pliku wygląda następująco: 

    :Location .php  
    
    use php74 

    Zamień go na: 

    <FilesMatch "\.php$"> 
    
    SetEnv CGI_HANDLER php74 
    
    </FilesMatch> 
  8. Require

    W ramach środowiska IdeaWebServer dyrektywa ‘Require’ działała wyłącznie w czterech wariantach: 

    Require user 
    
    Require users 
    
    Require group 
    
    Require groups

    W ramach Apache, poza wymienionymi, zaczną działać także: 

    Require ip 
    
    Require all 
    
    Require env 

    Sprawdź, czy w Twoim pliku .htaccess istnieją takie wpisy i upewnij się, czy mają być wykonywane.  

  9. Use

    Dyrektywa ‘Use’ nie jest wspierana w środowisku Apache. Jeśli znajdziesz taki wpis w swoim pliku .htaccess, usuń go.  
    Uwaga! Pamiętaj, by usunąć cały kontekst wpisu Use. Dla przykładu, jeśli wpis brzmi następująco:

    :Location PHP 
    
    Use php74 

    Usuń obie linijki lub zamień dyrektywę na <FilesMatch wzkazaną w punkcie 2.

  10. Access

    Wpis ‘Access’ nie jest wspierany w środowisku Apache. Jeśli znajdziesz w pliku .htaccess taki wpis, zamień go na dyrektywę ‘Require’ opisywaną w punkcie 8.

    Access allow all valid-user 
    
    access allow 127.0.0.1 
  11. ForceType

    ForceType’ to dyrektywa, która nie była wspierana przez środowisko IdeaWebServer. Przed przełączeniem na środowisko Apache, które ją wspiera, zweryfikuj poprawność wpisu i upewnij się, czy ma być wykonywany.  

    Przykład: 

    ForceType application/x-httpd-php 
  12. SetMime

    Dyrektywa ‘SetMime’ nie jest wspierana przez środowisko Apache. Jeśli w pliku .htaccess znajdziesz taki wpis, zamień go na dyrektywę ‘FilesMatch’. 

    :Location /*.docs 
    
    SetMime application/msword 
    
    :Location 

    Zamień na:

    <FilesMatch ".*\.docs"> 
    
    ForceType application/msword 
    
    </FilesMatch> 
  13. Expires

    Exipresjest dyrektywą obsługiwaną wyłącznie przez IdeaWebServer. W ramach środowiska Apache może zostać zastąpiona wpisem ‘ExpiresByType. Dla przykładu: 

    :Location *.gif 
    
    Expires A2592000 

    Możesz zamienić na 

    ExpiresByType image/gif A2592000

     

  14. ErrorDoc

    Dyrektywa ‘ErrorDoc’ nie jest obsługiwana w środowisku Apache, ma jednak swój odpowiednik w postaci ‘ErrorDocument’. Wpisy w pliku .htaccess możesz zamienić zgodnie z przykładem: 

    ErrorDoc 404 /errors/bad_urls.php 
    
    na:
    
    ErrorDocument 404 /errors/bad_urls.php
  15. SetEnvIf

    SetEnvIf’ to dyrektywa niedziałająca w środowisku IdeaWebServer. Jest obsługiwana w ramach Apache, więc przed przełączeniem zweryfikuj poprawność wpisów i upewnij się, że powinny być wykonywane.  

    Przykład:

    SetEnvIfNoCase User-Agent Robot is_a_robot 

     

  16. AllowOverride

    To wpis, który nie wprowadza żadnych zmian w środowisku IdeaWebServer, natomiast po przełączeniu na Apache może skutkować błędem 500. Jeśli w pliku .htaccess znajdziesz tę dyrektywę, usuń ją przed przełączeniem środowisk. 
    Przykład:

    AllowOverride All 

     

  17. LimitExcept

    Dyrektywa ‘LimitExcept’ nie była obsługiwana przez IdeaWebServer. Po przełączeniu na Apache zacznie działać, zweryfikuj więc poprawność wpisu i upewnij się, że powinien być wykonywany.  
    Przykład:

    <LimitExcept POST GET> 
  • Czy artykuł był pomocny ?
  • Tak   Nie