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. Coding e Sistemistica
    4. Hosting e Cloud
    5. [Rewrite-url] problemi con directories e slash
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • T
      tarab User Attivo • ultima modifica di

      [Rewrite-url] problemi con directories e slash

      Buona sera a tutti,
      ho realizzato un'applicazione php che permette di impostare la lingua o di rilevarla attraverso il browser.
      Per impostarla utilizzo index.php?hl=nome_lingua
      Così ho realizzato queste breve istruzioni per il rewrite url:

      RewriteEngine On
      RewriteRule ^([a-z]{2})/index.php$ index.php?hl=$1
      RewriteRule ^([a-z]{2})/$ index.php?hl=$1
      RewriteRule ^([a-z]{2})$ index.php?hl=$1

      Il problema è che se accedo al sito (in locale) con questo link:
      http://localhost/nomesito/it
      funziona perfettamente.
      Ma se provo ad accedere tramite questi due links:

      1. *http://localhost/nomesito/it/ *
      2. http://localhost/nomesito/it/index.php
        Mi si verificano una serie di errori.
        Come mai?

      Non sarà per il fatto che ho impostato la path del sito come
      http://localhost/nomesito/ ?

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • P
        paolino Moderatore • ultima modifica di

        Mi pare logico il perchè.

        @Tarab said:

        RewriteRule ^([a-z]{2})/index.php$ index.php?hl=$1

        Questo accetta url del tipo .../it/index.php

        @Tarab said:

        RewriteRule ^([a-z]{2})/$ index.php?hl=$1

        Questo accetta url del tipo .../it/

        @Tarab said:

        RewriteRule ^([a-z]{2})$ index.php?hl=$1

        Questo accetta url del tipo .../it

        In nessuno dei tre casi c'è la possibilità di accettare un qualcos'altro dopo lo slash ( tranne il primo dove accetta index.php ).

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • T
          tarab User Attivo • ultima modifica di

          Ma scusa, allora a maggior ragione l'istruzione
          RewriteRule ^([a-z]{2})/index.php$ index.php?hl=$1
          dovrebbe funzionare mettendo
          *http://localhost/nomesito/it/index.php
          *Infatti tutti questi 3 links sono raggiungibili, ma è il sito a non interagire correttamente.

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • P
            paolino Moderatore • ultima modifica di

            No, non è così.

            Tu c'hai il primo blocco dell'espressione che è ([a-z]{2}) e questo matcha 2 caratteri alfabetici minuscoli.

            Poi c'hai dopo lo slash index.php e due niente. Quindi l'index.php lo vede perchè matcha la prima regola, ma le altre due regole esprimono un url dove non c'è nient'altro dopo il blocco della lingua.

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • T
              tarab User Attivo • ultima modifica di

              E quindi come dovrei fare per ottenre qualcosa tipo
              Se digiti http://www.nomesito.ext*/it/, http://www.nomesito.ext/i, **http://www.nomesito.ext/it/index.php, leggi sempre le informazioni da *http://www.nomesito.ext/index.php?hl=parametro ?

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • P
                paolino Moderatore • ultima modifica di

                Ci sono due problemi:

                1. quelle regole vengono matchate in sequenza e chiaramente la seconda matcha la prima, la terza le matcha entrambe. Devi cercare di creare una sola regola

                2. miosito è il problema, quindi o lo metti pure nella regola o sposti il file .htaccess nella directory corrispondente a miosito

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • T
                  tarab User Attivo • ultima modifica di

                  Ciao,
                  riguardo a 2) ho già il file .htaccess nella root principale del sito.

                  1. come risolvo invece? Cioè, non avendo grosse conoscenze di url rewrite, come posso fare per risolvere questo problema?
                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • P
                    paolino Moderatore • ultima modifica di

                    Un consiglio che ti posso dare, è di farti una bella lettura di questo sito http://www.regular-expressions.info/

                    Le espressioni regolari sono alla base dell'url rewrite e senza capirne il funzionamento è praticamente impossibile realizzare rewrite corretti.

                    E' una cosa noiosa lo so, ma ti servirà per la vita.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • T
                      tarab User Attivo • ultima modifica di

                      grazie!
                      :ciauz:

                      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