• User Attivo

    Errore su Htaccess, mi reindirizza sempre ad una sola regola

    Salve,
    non riesco a editare in maniera corretta l'htaccess per questi indirizzi:

    miosito
    miosito /firenze
    miosito /firenze/fiesole
    miosito /firenze/fiesole/muratori

    chiaramente miosito è l'intero Url con https - .it, non posso postarlo dato che non sono Premium

    io ho messo questo sull'htaccess:

    RewriteEngine On
    RewriteRule ^$ index.php
    RewriteRule ^([a-z]+) province.php?Province=$1
    RewriteRule ^([a-z]+)/([a-z]+) municipality.php?Province=$1&Municipality=$2
    RewriteRule ^([a-z]+)/([a-z]+)/([a-z]+) landing.php?Province=$1&Municipality=$2&Cat2=$3
    
    
    

    vorrei raccogliere il valore dopo gli slash, quindi:

    1. firenze
    2. firenze & fiesole
    3. firenze & fiesole & muratori

    ho provato con tutti e 4 gli url ma mi reindirizza sempre alla pagina "province.php?Province=$1"

    Cosa sto sbagliando?
    Grazie a tutti.


  • User Attivo

    Ciao,
    può darsi che ti dica una sciocchezza ma... hai provato a invertire l'ordine delle regole, in questo modo?

    Se, come credo, la ricerca viene interrotta appena si verifica un "match", la prima regola che avevi messo soddisfa tutte le condizioni, nel senso che tutti i path iniziano con /firenze.
    Invertendo l'ordine, dalla regola più specifica alla meno specifica, potresti risolvere.

    Però non ho fatto la prova.

    @w_t said:

    >RewriteEngine On
    RewriteRule ^$ index.php
    RewriteRule ^([a-z]+)/([a-z]+)/([a-z]+) landing.php?Province=$1&Municipality=$2&Cat2=$3
    RewriteRule ^([a-z]+)/([a-z]+) municipality.php?Province=$1&Municipality=$2
    RewriteRule ^([a-z]+) province.php?Province=$1
    
    >```
    
    

  • User Attivo

    @altraSoluzione said:

    Ciao,
    può darsi che ti dica una sciocchezza ma... hai provato a invertire l'ordine delle regole, in questo modo?

    Se, come credo, la ricerca viene interrotta appena si verifica un "match", la prima regola che avevi messo soddisfa tutte le condizioni, nel senso che tutti i path iniziano con /firenze.
    Invertendo l'ordine, dalla regola più specifica alla meno specifica, potresti risolvere.

    Però non ho fatto la prova.

    Ma sai come ho risolto..?? Mettendo il Dollaro dopo ogni regola:

    RewriteEngine On
    RewriteRule ^$ index.php
    RewriteRule ^([a-z]+)$ province.php?Province=$1
    RewriteRule ^([a-z]+)/([a-z]+)$ municipality.php?Province=$1&Municipality=$2
    RewriteRule ^([a-z]+)/([a-z]+)/([a-z]+)$ landing.php?Province=$1&Municipality=$2&Cat2=$3
    
    

    Ora va alla perfezione...:bho:


  • User Attivo

    @w_t said:

    Ma sai come ho risolto..?? Mettendo il Dollaro dopo ogni regola:

    >RewriteEngine On
    RewriteRule ^$ index.php
    RewriteRule ^([a-z]+)$ province.php?Province=$1
    RewriteRule ^([a-z]+)/([a-z]+)$ municipality.php?Province=$1&Municipality=$2
    RewriteRule ^([a-z]+)/([a-z]+)/([a-z]+)$ landing.php?Province=$1&Municipality=$2&Cat2=$3
    
    >```
    
    Ora va alla perfezione...:bho:
    
    Mmmm... mi sa che col ^ all'inizio e il $ alla fine escludi eventuali estensioni nel path come, per esempio /firenze/fiesole/muratori/pagina1, /firenze/fiesole/muratori/pagina2, ecc... se presenti.
    
    Ma se non hai questo tipo di problema allora è ok così.