Back to top

Autore Topic: Forzare un redirect  (Letto 1989 volte)

Offline sasarella

  • Appassionato
  • ***
  • Post: 521
    • Mostra profilo
Forzare un redirect
« il: 09 Giu 2023, 16:12:02 »
Buongiorno a tutti!
Non riesco a trovare una soluzione:
ho delle pagine che bisogna essere loggati.
Quando si clicca sopra alla pagina resistuisce l'url così: www......./component/users/login?Itemid=101
Sto cercando di fare un redirect alla pagina dedicata ma non funziona.Ho provato anche con Admin Tools core (gratuito) ma non la reinderizza.

Come posso risolvere questa cosa?

Posso fare un override e cambiare l'indirizzo dinamico da qualche parte nel codice di Joomla?Se si in quale file? Perché ho cercato e non ho trovato soluzione.

Grazie mille per il vostro aiuto

Offline gioso

  • Appassionato
  • ***
  • Post: 279
  • Sesso: Maschio
    • Mostra profilo
Re:Forzare un redirect
« Risposta #1 il: 10 Giu 2023, 00:23:28 »
Ciao.
Ci sarebbero almeno due soluzioni, ma onestamente non ho capito molto del problema. Potresti essere più esplicito, indicando chiaramente le circostanze e soprattutto se il problema si verifica in area riservata o in area ad accesso pubblico?

Offline sasarella

  • Appassionato
  • ***
  • Post: 521
    • Mostra profilo
Re:Forzare un redirect
« Risposta #2 il: 19 Giu 2023, 20:37:02 »
Ciao gioso, spiego tutta la situazione:
- ho un prodotto X
- per poterlo visualizzare devi fare il login

Quando clicchi su X il sistema porta a questa pagina .../component/users/login?Itemid=101
che è l'home page + un modulo login di default senza "Password dimenticata?, Nome utente dimenticato?, Registrati"
e richiede di fare il login.

Io vorrei che questo link potesse avere 2 comportamenti:
- se sei loggato, si apre il prodotto X
- se non sei loggato, si va in una pagina dedicata dove ci sono le istruzioni per potersi registrare

C'è un modo per poterlo fare?

Grazie!!  :)
PS: ho visto che fa lo stesso redirect se clicchi su
"Password dimenticata?":       .../component/users/reset?Itemid=101
"Nome utente dimenticato?": .../component/users/remind?Itemid=101
Anche qui vorrei che fosse una pagina dedicata e non con tutti gli elementi della home page, se po fa?  :D
Grazie mille
« Ultima modifica: 19 Giu 2023, 20:39:27 da sasarella »

Offline giusebos

  • Fuori controllo
  • *
  • Post: 21746
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
Re:Forzare un redirect
« Risposta #3 il: 20 Giu 2023, 00:51:45 »
Quelle url cosi brutte le hai perchè non hai organizzato i tuoi contenuti!!
Usa le categorie.
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline sasarella

  • Appassionato
  • ***
  • Post: 521
    • Mostra profilo
Re:Forzare un redirect
« Risposta #4 il: 20 Giu 2023, 07:39:22 »
Ciao giusebos,
il sito è organizzato in categorie ma penso che non ho capito cosa intendi tu  :D
Questi url per la gestione dell'account sono di sistema o si possono personalizzare?
Grazie

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32045
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Forzare un redirect
« Risposta #5 il: 20 Giu 2023, 13:41:29 »
In realtà l'url conta pochissimo ai fini seo, non scervellarti più di tanto, io lo lascerei così visto che non porta nessun vantaggio.

Offline gioso

  • Appassionato
  • ***
  • Post: 279
  • Sesso: Maschio
    • Mostra profilo
Re:Forzare un redirect
« Risposta #6 il: 20 Giu 2023, 16:33:53 »
Come dicevo nel mio primo messaggio, ci sono due diverse soluzioni: mediante reindirizzamenti di Joomla (che trovi tra le voci del menu "Sistema") oppure tramite scrittura del file htaccess. Personalmente preferisco questa seconda modalità per una serie di vantaggi. Eviterei qualsiasi componente esterno perché non ce n'è proprio bisogno.
Venendo alla tua domanda, vuoi che dalla pagina di un prodotto X l'utente venga indirizzato in due modi diversi: se è loggato, in direzione di un determinato indirizzo; se non è loggato, verso altro indirizzo.
Se un utente è loggato ed è sulla pagina del prodotto X mi sembra naturale che venga portato sulla pagina desiderata se si clicca su un determinato link.
Se un utente non è loggato, ricordo che il modulo di accesso consente di personalizzare la pagina di reindirizzamento dopo l'accesso: lo puoi portare compilando quel campo incluso nel modulo. Più difficile è se per "prodotto X" intendi un prodotto di volta in volta diverso: questo campo ti consente di inserire un solo indirizzo, che potrebbe essere la pagina della categoria dei prodotti.
In ogni caso, tutto questo discorso è successivo a un altro: hai già avuto modo di usare i reindirizzamenti di Joomla? Oppure hai una minima esperienza di scrittura del file htaccess? Entrambi ti possono aiutare a indirizzare l'utente loggato sulla pagina desiderata, oppure l'utente non loggato su una pagina di cortesia che include sia le istruzioni per la registrazione, sia un modulo incorporato che gli consenta di registrarsi...
Corollario necessario: se vuoi che l'utente venga trasferito di volta in volta su una pagina diversa in base al prodotto, c'è bisogno di un bel po' di lavoro in più.
« Ultima modifica: 20 Giu 2023, 17:37:21 da gioso »

Offline sasarella

  • Appassionato
  • ***
  • Post: 521
    • Mostra profilo
Re:Forzare un redirect
« Risposta #7 il: 20 Giu 2023, 18:35:03 »
Il mio problema è che ho una lista di prodotti e per vedere le caratteristiche devi essere loggato.
Sono tutti nella pagina "Prodotti".

Quando sei loggato, ok vedi la pagina.

Quando non lo sei e clicchi sul prodotto vorrei che andasse alla pagina "Listino" dove li trovi le istruzioni per loggarti (e se sei già loggato vedi la lista di tutti i prodotti [il cliente vuole così, non c'è stato verso]).

Io ho provato a fare i redirect ma con l'url con il punto di domanda non me lo fa fare.
Ho cercato letteralmente ovunque ma sicuramente sono io che non ho capito come si fanno a fare i redirect con i caratteri speciali.


Mi potresti fare un esempio che funziona da scrivere nell'htaccess?

Grazie infinite gioso  :)

@tomtomeight: non lo faccio per seo, solo per funzionalità/ux

Offline gioso

  • Appassionato
  • ***
  • Post: 279
  • Sesso: Maschio
    • Mostra profilo
Re:Forzare un redirect
« Risposta #8 il: 21 Giu 2023, 00:48:13 »
Con i redirect non si va a tentativi: bisogna capire bene qual è la vecchia url e quale la nuova url, però bisogna anche prevenire una serie di errori verificabili. Mi chiedi un esempio, ma il Web è pieno di guide, di forum e di post che affrontano problemi specifici e che aiutano a risolverli. Dipende da che cosa vuoi tu, e finora sei stato generico, né puoi e vuoi fornire un link vecchio e un link nuovo perché disponibili in area riservata.
Torniamo al problema. Se chi non è loggato deve raggiungere la pagina "Listino" con le istruzioni per la registrazione, in teoria il redirect sarebbe il seguente (a fine riga scrivo "302" perché il redirect è in fase di sperimentazione; quando diventerà definitivo trasformerai "302" in "301"):

Codice: [Seleziona]
RewriteRule ^/prodotto.html /listino.html [R=302,L]
Questo è un esempio di riga da inserire in htaccess, ma a determinate condizioni: se commetti un solo errore l'intero sito ti restituirà un codice di errore 500 fino a quando non avrai risolto il problema; in assenza di errori formali non visualizzerai l'errore 500, ma potresti ottenere effetti imprevisti (di cui si accorge l'utente a tua insaputa). Il problema sta proprio nel fatto che devi vagliare attentamente ciò che stai chiedendo al sistema, quindi ragionare ragionare ragionare.
La riga di esempio, infatti, funzionerà per chi non è loggato, ma anche per chi è loggato, sicché rischi di compromettere la navigazione degli utenti già registrati (ogni volta che cliccheranno su un prodotto verranno riportati sempre al Listino).
In definitiva, un esempio generico non serve a niente.
Per evitare errori di reindirizzamento in assenza di riscrittura condizionale, ti consiglierei di creare due diverse pagine "Listino": chi non è loggato vede la pagina "listino-1.html" (con le istruzioni per il login), chi è loggato vede la pagina "listino-2.html" (completa della lista dei prodotti). Dovresti partire da una riga simile a questa:

Codice: [Seleziona]
RewriteRule ^/?component/users/login.html /directory/listino-1.html [R=302,L]
che può anche essere

Codice: [Seleziona]
RewriteRule ^/?component/users/login /directory/listino-1.html [R=302,L]
P.S. Nei redirect con htaccess il punto di domanda ha una funzione diversa a seconda di dove lo si mette. Se usata a caso produce errori nel redirect, come sembra capiti a te. Dopo "login" ho tolto il punto interrogativo e la query per semplificare. Per le query è preferibile usare RewriteCond, ma la questione si complica.
« Ultima modifica: 21 Giu 2023, 01:03:56 da gioso »

Offline sasarella

  • Appassionato
  • ***
  • Post: 521
    • Mostra profilo
Re:Forzare un redirect
« Risposta #9 il: 21 Giu 2023, 15:50:27 »
Grazie gioso,

ora provo.


Il discorso dei rdirect con i caratteri speciali è che anche se li imposto non funzionano.

Faccio dei test, vediamo quale soluzione sarà al mio caso!

Grazie! :)

Offline sasarella

  • Appassionato
  • ***
  • Post: 521
    • Mostra profilo
Re:Forzare un redirect
« Risposta #10 il: 21 Giu 2023, 18:00:05 »
Niente, non funziona fare il redirect.

Mi sono arresa e ho sistemato con override e un pò di css la pagina  .../component/users/login?Itemid=101

Ma da cosa dipende che a me sti redirect con caratteri strani non funzionano?


Grazie ancora  :)

Offline gioso

  • Appassionato
  • ***
  • Post: 279
  • Sesso: Maschio
    • Mostra profilo
Re:Forzare un redirect
« Risposta #11 il: 21 Giu 2023, 21:30:47 »
Nell'aggiornamento da J2.5 a J4 ho gestito 150.000 redirect del mio sito senza incontrare problemi insormontabili. Gli eventuali errori dipendevano sempre da me.
Ti costa molto postare qualche esempio di redirect che hai provato "con caratteri strani" ? Oppure dare un link? In caso contrario non ho proprio modo di aiutarti e staremmo qui a farci domande sui massimi sistemi senza alcun effetto su Joomla.

Offline gioso

  • Appassionato
  • ***
  • Post: 279
  • Sesso: Maschio
    • Mostra profilo
Re:Forzare un redirect
« Risposta #12 il: 22 Giu 2023, 11:32:34 »
Ti propongo sotto forma di domande tre aspetti preliminari che ho dato per scontati:
  • il nome del tuo file htaccess è htaccess.txt oppure .htaccess?
  • hai attivato il mod_rewrite?
  • hai inserito le righe di redirect dopo RewriteEngine On?

Offline sasarella

  • Appassionato
  • ***
  • Post: 521
    • Mostra profilo
Re:Forzare un redirect
« Risposta #13 il: 29 Giu 2023, 19:01:07 »
Ciao gioso, scusami la tarda risposta e grazie per il tuo aiuto.

Un esempio di link è quello che ho postato nel primo postwww.esempio.com/component/users/login?Itemid=101

Sono i caratteri speciali (?!"£$%&, lettere accentate, ecc) che non mi riescono a fare redirect.
(Sembra che sono l'unica ad avere sto problema...)

Rispondo alle domande:
1. .htaccess
2. attivato mod_rewrite
3. I redirect di solito li inserisco a fine htaccess

Per esempio: se io ho questo url da fare redirect
..../cuisinière-à-induction/?view=remind&Itemid=224
come lo devo scrivere?


Redirect 301 /es/cuisinière-à-induction/?view=remind&Itemid=224 https://www.esempio.com/es/lanuovapagina

Io li scrivo così e solamente quando ci sono i caratteri speciali non funziona.

Grazie mille!!!Magari è la volta buona che mi tolgo sto problema  :)
« Ultima modifica: 29 Giu 2023, 20:57:03 da sasarella »

Offline gioso

  • Appassionato
  • ***
  • Post: 279
  • Sesso: Maschio
    • Mostra profilo
Re:Forzare un redirect
« Risposta #14 il: 29 Giu 2023, 23:29:32 »
Dovresti semplicemente evitare di generare alias di articoli/categorie contenenti caratteri speciali.
Se proprio vuoi usarli, devi trasformarli in entità html e unicode (come spiegato ampiamente su numerosi siti individuabili tramite Google).

Offline sasarella

  • Appassionato
  • ***
  • Post: 521
    • Mostra profilo
Re:Forzare un redirect
« Risposta #15 il: 30 Giu 2023, 07:08:22 »
Ma se li trovo generati precedentemente devo impostare il redirect 301 alla nuova pagina dove io genero un url pulito.

Ma io non ho capito ancora come si fa

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32045
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Forzare un redirect
« Risposta #16 il: 30 Giu 2023, 07:22:56 »
Quale componente ti genera quel tipo di url?

Offline sasarella

  • Appassionato
  • ***
  • Post: 521
    • Mostra profilo
Re:Forzare un redirect
« Risposta #17 il: 02 Lug 2023, 07:31:53 »
Joomla

Offline sasarella

  • Appassionato
  • ***
  • Post: 521
    • Mostra profilo
Re:Forzare un redirect
« Risposta #18 il: 02 Lug 2023, 07:33:11 »
Dovresti semplicemente evitare di generare alias di articoli/categorie contenenti caratteri speciali.
Se proprio vuoi usarli, devi trasformarli in entità html e unicode (come spiegato ampiamente su numerosi siti individuabili tramite Google).


Lo so bene e li evito come la peste.

Ma io ora me li sono ritrovati così e devo fare i redirect, oltre che vorrei gestire le pagine che genera Joomla come mi pare

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32045
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:Forzare un redirect
« Risposta #19 il: 02 Lug 2023, 12:43:02 »
Joomla
Strano, se attivato mod_rewrite e cambiato in .htaccess non dovrebbe generare quel tipo. Non è  che sono url che ti porti appresso da chissà quale estensione o errata vecchia configurazione?

 



Web Design Bolzano Kreatif