- Home
- Categorie
- La Community Connect.gt
- Tutto sulla Community
- Redirect da pagina dinamica a pagina dinamica
-
Redirect da pagina dinamica a pagina dinamica
Buonasera,
ho tentato di scrivere questo:
RewriteRule ^cartella/index\.php?gallery=pippo$ cartella/index.php?gallery=paperino [R=301]
ma con scarsi risultati.
Quale è il modo corretto di scriverlo?
-
Prova così
RewriteCond %{REQUEST_URI} ^cartella/index\.php$ RewriteCond %{QUERY_STRING} ^gallery=pippo$ RewriteRule (.*) cartella/index.php?gallery=paperino [R=301]
-
Ciao, e grazie per la risposta.
Ho provato come mi hai suggerito ma sembra non funzionare.
Forse dovevo specificare che sono su server windows (con isapirewrite)?
-
Lavoro solo su apache, quindi grazie alla mia scarsa conoscenza di IIS potrei sbagliarmi, ma credo che IIS non abbia la REQUEST_URI...
La buona notizia è che potrebbe essere questo il motivo per il quale non funziona la rewrite.
La cattiva notizia è che non so come aiutarti, mi spiace. Per darti una mano dovrei cercare su google, ma credo che questo lo sappia fare anche tu
In alternativa attendiamo qualcuno che ne sappia di più...
-
Grazie per la risposta,
cercando un po su google, ho provato a mettere questo in fondo all' .htaccess:
RewriteBase /cartella/ RewriteCond %{QUERY_STRING} gallery=pippo[.*]* RewriteRule ^index\.php$ index.php?gallery=paperino [R=301,L]
Il problema è che, in questo modo, funzionano solo i redirect relative alle pagine che sono nella sottodirectory cartella/
-
puoi sempre utilizzare la riscrittura assoluta anteponendo "/" all'indirizzo di rewrite...
altrimenti puoi togliere il rewritebase e inserire l'htaccess direttamente all'interno di "cartella", così le direttive valgono solo all'interno di quest'ultima...La condizione sulla query da sola la eviterei per siti grandi, perché la condizione viene testata per qualsiasi file che venga richiamato con una variabile gallery impostata su "pippo". Per un sito piccolo non hai problemi, ma se il sito è grande è meglio limitare l'htaccess a poche istruzioni (efficienti) per volta.
-
@lucabartoli said:
puoi sempre utilizzare la riscrittura assoluta anteponendo "/" all'indirizzo di rewrite...
Non ho capito, potresti farmi un esempio?
@lucabartoli said:
altrimenti puoi togliere il rewritebase e inserire l'htaccess direttamente all'interno di "cartella", così le direttive valgono solo all'interno di quest'ultima...
Ho provato, ma sembra non funzionare!
@lucabartoli said:
La condizione sulla query da sola la eviterei per siti grandi, perché la condizione viene testata per qualsiasi file che venga richiamato con una variabile gallery impostata su "pippo". Per un sito piccolo non hai problemi, ma se il sito è grande è meglio limitare l'htaccess a poche istruzioni (efficienti) per volta.
E' un sito non molto grande... poi mi serve soprattutto per capire come funziona 'sto htaccess su server windows..!
-
Quando inserisci "cartella/index.php" indichi che vuoi la pagina index.php dentro a "cartella" e che "cartella" si trova nella directory attuale.
Se invece utilizzi "/cartella/index.php" stai dicendo che vuoi la pagina index.php che si trova in "cartella", e che "cartella" è posta nella root del sito.Prova così:
RewriteCond %{QUERY_STRING} gallery=pippo[.*]* RewriteRule ^cartella/index\.php$ /cartella/index.php?gallery=paperino [R=301,L]