Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. La Community Connect.gt
    4. News Ufficiali da Connect.gt
    5. url rewrite e slash (e contenuti duplicati)
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • Z
      zanna86 User Attivo • ultima modifica di

      url rewrite e slash (e contenuti duplicati)

      Ciao a tutti...è tutta la mattina che ci provo ma anche leggendo i vari post qui nel forum e da altre parti non ci sono riuscito....

      Il mio sito ha delle pagine strutturate così:

      vvv.dominio.it/pagina.php?contenuto=prova

      io vorrei accedervi tramite:
      vvv.dominio.it/contenuto/prova e tramite
      vvv.dominio.it/contenuto/prova/

      Ho provato a scrivere nel file .htaccess qeusto codice ma mi dà errore 500:

      
      RewriteEngine on
      RewriteRule ^profilo/([^/]+)/$ profilo.php?contatto=$1
      RewriteRule ^profilo/([^/]+)$ profilo.php?contatto=$1
      
      

      Invece se utilizzo questo codice (identico tranne che al posto dello slash "/" c'è il trattino "-") :

      
      RewriteEngine on
      RewriteRule ^profilo-([^/]+)/$ profilo.php?contatto=$1
      RewriteRule ^profilo-([^/]+)$ profilo.php?contatto=$1
      
      

      funziona tutto...solo che mi permette di arrivare alla pagina voltuta digitando vvv.dominio.it/contenuto-prova/ mentre come ho già detto io vorrei arrivarci digitando
      vvv.dominio.it/contenuto/prova e
      vvv.dominio.it/contenuto/prova/

      1-come posso risolvere?

      2-Una volta risolto il punto 1 poi potrebbe esserci il problema dei contenuti duplicati visto che digitando:

      • vvv.dominio.it/contenuto/prova/
      • vvv.dominio.it/contenuto/prova
      • vvv.dominio.it/pagina.php?contenuto=prova

      otterrei gli stessi identici contenuti.

      Come si risolve?non vi sto chiedendo il codice...a quello proverò a pensarci io (semmai poi tornerò qui a chiedere!eheh) vorrei capire il ragionamento logico da fare per evitare questo inconveniente!devo usare dei redirect301 fatti da htaccess?da quale pagina a quale pagina?mi piacerebbe che fosse indicizzata solo la pagina con lo slash finale, cioè vvv.dominio.it/contenuto/prova/

      grazie ciao!

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • Z
        zanna86 User Attivo • ultima modifica di

        Nessuno sa aiutarmi? almeno sul punto due...

        2-Digitando

        • vvv.dominio.it/contenuto/prova/
        • vvv.dominio.it/contenuto/prova
        • vvv.dominio.it/pagina.php?contenuto=prova

        otterrei una pagina con gli stessi identici contenuti.

        Come posso evitare di avere questi contenuti duplicati?devo usare dei redirect301 fatti da htaccess?da quale pagina a quale pagina?mi piacerebbe che fosse indicizzata solo la pagina con lo slash finale, cioè vvv.dominio.it/contenuto/prova/

        grazie ciao

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • O
          osvi Super User • ultima modifica di

          finalmente un thread dove si discute invece di chiedere il codice pronto 😄

          per il punto 1 potrebbe essere che il server non ti consente di applicare regole in url differenti da quelli della directory corrente

          /.htaccess
          /contenuto/x/

          questo htaccess ti fa modificare solo cioè che appartiene a contenuto ma non ad x

          per il punto 2:
          controlla le variabili nell'array $_SERVER
          verso il fondo ci sono delle stringhe sull'url richiesto
          ti basta un if per vedere se è l'url che te consideri principale (e in quel caso non fai niente)
          nell'else metti un redirect verso l'url per te principale

          spero di essermi spiegato 😄

          ciao
          Francesco

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • Z
            zanna86 User Attivo • ultima modifica di

            perfetto..!grazie mille...erano proprio i 2 consigli che mi servivano..!!!

            ciao!

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • Z
              zanna86 User Attivo • ultima modifica di

              Ho risolto così:

              pagina php
              ho inseirito un controllo della variabile $_SERVER['REQUEST_URI'] e rediretto con un 301 al nuovo URI senza parametri

              htaccess
              un RewriteRule che si occupa di fare il redirect 301 dagli URI che soddisfano il filtro e che hann lo slash finale agli URI senza slash finale (in pratica tolgo lo slash finale)

              un RewriteRule per avere le URI più friendly

              In fine per testare il tutto ho usato un tools per il check degli headers con queste 4 URI:

              vvv.dominio.it/[email protected] (che è l'URI principale)

              HTTP/1.1 200 OK
              

              vvv.dominio.it/[email protected]/

              HTTP/1.1 301 Moved Permanently to vvv.dominio.it/[email protected]
              

              vvv.dominio.it/parametri.php?contenuto=prova

              HTTP/1.1 301 Moved Permanently to vvv.dominio.it/[email protected]
              

              Sembrerebbe tutto ok, giusto??

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • O
                osvi Super User • ultima modifica di

                sì direi che sia tutto a posto 😉

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • Z
                  zanna86 User Attivo • ultima modifica di

                  ma quindi potrebbe essere utile (e quindi non deleterio) inserire un redirect di questo tipo nell index.php?

                  if (URL senza slash finale){
                  Header( "HTTP/1.1 301 Moved Permanently" ); 
                  Header( "Location: URL con slash finale");
                  }
                  
                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • O
                    osvi Super User • ultima modifica di

                    si certo
                    prima della graffa chiusa metti un exit; per terminare l'esecuzione altrimenti invii sia il redirect che il codice della pagina (non avrebbe senso) 😉

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    Caricamento altri post
                    Rispondi
                    • Topic risposta
                    Effettua l'accesso per rispondere
                    • Da Vecchi a Nuovi
                    • Da Nuovi a Vecchi
                    • Più Voti