Visualizzazione risultati 1 fino 2 di 2

Discussione: internal server error causato da .htaccess

  1. #1
    Guest

    Question internal server error causato da .htaccess

    Salve a tutti!

    Ho appena caricato il mio sito http://occhidelnord.altervista.org e, in un primo momento, il file .htaccess che avevo caricato causava un "internal server error" in tutte le pagine che non fossero la home page.

    Riporto qui di seguito il contenuto del file in questione:

    Codice:
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    
    php_flag short_open_tag on
    php_flag output_buffering on
    php_flag zlib.output_compression on
    php_value zlib.output_compression_level 9
    
    php_value max_execution_time 60
    php_value max_input_time 60
    php_value memory_limit "64M"
    php_value post_max_size "2M"
    
    php_value upload_max_filesize "2M"
    php_value max_file_uploads 1
    
    php_flag register_globals off
    php_flag register_long_arrays off
    php_flag register_argc_argv off
    php_flag magic_quotes_gpc off
    
    php_value default_mimetype "text/html"
    php_value default_charset "utf8"
    
    php_flag session.use_cookies on
    php_flag session.use_only_cookies on
    php_value session.name "OCCHIDELNORD"
    php_value session.cookie_lifetime 0
    php_value session.cookie_path "/"
    php_value session.gc_maxlifetime 1800
    php_value session.hash_function 1
    php_value session.hash_bits_per_character 6
    Come si nota, questo .htaccess attiva il mod_rewrite, infatti il mio sito si basa su Zend Framework, che ne fa uso. Però, come anticipato, il sito non funzionava, a parte la homepage.

    Aggiungendo questa riga subito dopo la prima:

    Codice:
    RewriteBase /
    tutto è tornato a funzionare normalmente.

    Ho risolto il problema ma non capisco perchè questa soluzione funzioni. Sul mio pc, dove ho sviluppato il sito, quel file .htaccess originale funzionava egregiamente, perchè invece qui ho bisogno di quella direttiva extra?

    Ammetto di non essere molto esperto del funzionamento del mod_rewrite di Apache

    Ringrazio in anticipo chiunque vorrà perdere qualche minuto per spiegarmi questa differenza

  2. #2
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,252

    Predefinito

    E' probabile che senza quella direttiva la prima RewriteRule (quella con le Cond-izioni) rimanga bloccata in un ciclo infinito.

    La regola viene applicata, apache ricomincia a valutare il file htaccess, ma se non conferma una delle tre condizioni, applica la regola e cicla nuovamente. Se il RewriteBase non è specificato, Apache va a controllare le condizioni nella directory sbagliata, e quindi non ne esce più.

    In locale hai probabilmente una configurazione diversa, ma su servizi shared hosting RewriteBase è quasi sempre necessario, per assicurarti che il percorso includa la directory del tuo utente.

Tags for this Thread

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •