- Home
- Categorie
- La Community Connect.gt
- News Ufficiali da Connect.gt
- Mod Rewrite si comporta diversamente a seconda dell'hosting?
-
Mod Rewrite si comporta diversamente a seconda dell'hosting?
Ciao a tutti,
questa volta il problema riguarda il mod rewrite e la mia domanda è questa..può essere che a seconda con chi si è in hosting il rewrite si comporti diversamente? Secondo me non è possibile ma mi son venuti forti dubbi ultimamente.
Premetto che trattasi entrambi di hosting linux, uno su aruba e uno su server dedicato. Quello su server dedicato fa tutto quello che comando senza problemi mentre su aruba si comporta in maniera strana.Non mi sembra di sbagliare rewrittando(scusate il neologismo) così:
RewriteRule ^(.).php$ pagina.php?parte1=$1
RewriteRule ^(.)/(.*).php$ pagina.php?parte1=$1&parte2=$2invece mi va in errore
Se scrivo al posto di (.) e della variabile il nome della parte tutto va bene es:
RewriteRule ^parte_iniziale.php$ pagina.php?parte1=parte_iniziale
mentre
RewriteRule ^parte_iniziale/(.).php$ pagina.php?parte1=parte_iniziale&parte2=$1
funziona per alcune parti ma non sempre
Tengo a precisare che pagina.php?parte1=parte_iniziale&parte2=parte_finale funziona perfettamente come stringa php
Qualcuno ha qualche idea in merito?
(Io spero sia veramente solo colpa di aruba ch etanto devo cambiare piano hosting e provider)
e grazie
-
a volte ci sono dei problemi, escono soprattutto dei 500, risolvibili col rewritebase
"non funziona", cosa succede di preciso? 404? 500?
ciao
Francesco
-
ciao grazie dell'interessamento
mi da errori 404 ma non capisco perchè dato che con alcune parole funziona mentre con altre no
in ogni caso la chiamata php da sempre risultati esatti..è proprio un problema di rewriting.
Ho aggiunto il rewritebase ma non è cambiato nulla..
-
il rewritebase risolve i 500
prova a cambiare il (.*) in ([^/]+)
ciao
-
Ciao, il problema l'ho capito...ma purtroppo non sono contento di questo perchè non risolve nulla.
ma il nome di una pagina .php già riscritta può dare problemi se poi la cartella "finta" si chiama nello stesso modo?
Guarda te la faccio con esempio reale e pratico, il sito è il mio in firmavolevo riscrivere le località in questo modo:
RewriteRule ^(.*).php$ localita.php?zona_name=$1
e come solito con la querystring php andava ma non il rewrite e ho dovuto ovviare inRewriteRule ^rimini.php$ localita.php?zona_name=rimini
RewriteRule ^riccione.php$ localita.php?zona_name=riccione
e così via per le località in menu ma già questo mi puzza non si possa fare (come dicevo nei post precedenti con un dedicato faccio quello che voglio)poi devo andare nelle sottolocalità e faccio
RewriteRule ^(.)/(.).php$ localita.php?zona_name=$1&localita_name=$2
che ovviamente non va visti i tentativi di prima e allora faccio:
RewriteRule ^rimini/(.).php$ localita.php?zona_name=rimini&localita_name=$1
e non mi va nemmeno questo però noto che
RewriteRule ^lidi-ravenna/(.).php$ localita.php?zona_name=lidi-ravenna&localita_name=$1
funziona (ch eguarda caso nella regola rewrite precedente non esiste mentre rimini si) alchè provo a fare
RewriteRule ^hotel-rimini/(.).php$ localita.php?zona_name=rimini&localita_name=$1
e funziona.
A cosa può essere dovuto questo malfunzionamento?Non mi sembra sia un errore di programmazione perchè come ribadisco le querystring funzionano tutte a meraviglia
Ho fatto poi quest'altra prova
RewriteRule ^hotelrimini/(.).php$ localita.php?zona_name=rimini&localita_name=$1
e anche questa mi va in 404
sembra ch equando trova una parola sola vad ain errore mentre con il - non più
no ci capisco più nulla
-
up
-
:bho: finchè continui ad usare (.*) al posto di ([^/]+) continuerai ad avere potenziali problemi
devi escludere lo slash dalla parte da riconoscere, in quanto è fisso nella tua regola^(.)/(.).php$
se scrivo x/y.php, rischio di riconoscerlo solo come $1ribadito questo concetto generale,
prova a scrivere ad aruba.. la regola è corretta (sia teoricamente, che praticamente - lo hai visto tu stesso sul tuo dedicato)magari scrivi sul forum cosa ti rispondono
-
ciao osvi, ho fatto come dicevi tu e al posto dei (.*) ora ho i ([^/]+)
Però non mi cambia nulla e in più se escludo gli slash dalla regola come faccio a fare i rewrite? Queste cose proprio non le capisco o meglio..no capisco dove sto sbagliando. Se la mia regola deve avere 2 variabili
pippo/pluto.php
la pagina paperino non dev'essere scritta così?
^([^/]+)/([^/]+).php$ paperino.php?nome1=$1&nome2=$2dove la pagina si richiama con http://www.miodominio.com/paperino.php?nome1=pippo&nome2=pluto
dove sbaglio?