• Super User

    .htaccess e mod_rewrite

    Salve,
    arrivo subito al punto anticipando che sto impazzendo su questo problema 🙂

    Ho una serie di domini sul server per il quale avrei necessità di configurare ovviamente un .htaccess per rendere gli url user-friendly.

    Ho installato ovviamente il mod_rewrite (phpinfo infatti mi riporta l'esatto caricamento).

    Succede che applicando il file .htaccess sotto ogni singolo dominio con una semplice impostazione del tipo:

    
    RewriteEngine On
    RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 
    
    

    [html]
    <p><a href="rewrite.php?link=1">LINK1</a> = rewrite.php?link=1</p>
    <p><a href="link2.html">LINK2</a> = link2.html</p>
    [/html]

    Ma non funziona!

    Aggiungo che ho aggiunto anche la clausola "rewriteEngine on" per il dominio.

    La cosa ancor più strana è che ho il dominio principale (quello in firma) che invece con la configurazione identica del file .htaccess e del virtualhost sotto apache funziona perfettamente.
    Tutti gli altri no e non riesco a capire perchè 😄

    Grazie anticipatamente


  • Super User

    ok sono riuscito a risolvere il problema, però avrei bisogno di una spiegazione a riguardo.

    Il problema risiedeva nel fatto che il sito aveva l'opzione
    AllowOverride: none.
    Cambiandola in All qualcosa è tornato a funzionare.
    Inizialmente mi dava errore 403 / accesso negato.

    Tramite alcuni consigli sulla rete ho aggiunto:
    Options +FollowSymLinks

    E tutto funziona, anche il mod_rewrite.

    Adesso, vorrei capire il motivo 😄
    Vorrei innanzitutto capire se è "sicuro" mettere a tutte le directory sotto l'htdocs di apache le opzione sopracitate o se è una cosa da evitare.

    Secondo, capire cosa è che avrei sbagliato omettendo i parametri sopracitati.

    Grazie


  • User

    allowOverride significa che permetti ai file .htaccess di poter sovrascrivere le configurazioni di default del server, nessuna falla di sicurezza