• User

    Sapere la url originale

    scusate la domanda forse stupida...

    ho un htaccess che mi trasforma degli url tipo

    index_ita.php

    in

    index.php?lang=ita

    e fin qui niente di strano.. la mia domanda è: in php posso sapere l'url originale richiesto? ovvero se io voglio sapere la richiesta prima del mod_rewriting come posso fare? anche perchè ovviamente il mio htaccess cambia molti tipi di pagine e ricreare a posteriori quello che ha modificato sarebbe troppo lunga.. ho provato con le $_SERVER ma ovviamente ci sono quelli dopo l'url rewriting.. è possibile una cosa del genere qualcuno mi sa aiutare? grazie


  • Super User

    in $_SERVER dovresti trovare tutto
    controllalo con un print_r()

    all'indice REQUEST_URI trovi la pagina richiesta dal browser
    in PHP_SELF in nome dello script
    in QUERY_STRING la query string


  • User

    Ciao a tutti.
    Anche a me interesserebbe la risposta a questo quesito.
    Ho provato a fare il print_f($_SERVER) ma le variabili presenti sono quelle dopo url-rewrite, nessuna traccia delle originali...(a parte index.php presente come[SCRIPT_NAME] ma non è di alcuna utilità ovviamente..)
    Qualche ulteriore suggerimento?


  • User

    Ho sbagliato sintassi naturalmente:
    print_r($_SERVER)


  • Super User

    Ho fatto una prova..

    URL richiesto: http://localhost/vacanze/
    Regola: RewriteRule ^vacanze/$ tipovacanza.php?t=0

    $_SERVER:

        [QUERY_STRING] => t=0
        [REQUEST_URI] => /vacanze/
        [SCRIPT_NAME] => /tipovacanza.php
    

  • User

    Ciao Osvi,grazie per il tuo messaggio.
    Ho un sito in joomla con il file .htaccess preconfigurato, io non so fare le modifiche per adattarlo a questa esigenza (ovvero di conservare le variabili dell'url originale joomla che è tipo
    "index.php?option=com_content&view=category&id=64")
    per poterle ritrovare anche con url riscritto, perchè con queste regole evidentemente si perdono..ho provato con $_SERVER appunto ma non c'è traccia..non so in realtà se quello che chiedo è possibile..
    Ho scelto di utilizzare una riscrittura dove l'url è tipo "nomesito/pagina" per buona parte delle pagine, solo di alcune l'url è tipo "nomesito/subdir/123-pagina"...se posto il codice del file .htaccess puoi aiutarmi?
    Se non chiedo troppo ovviamente.
    Grazie


  • Super User

    Non conosco bene Joomla quindi postarmi il codice servirebbe a poco (se vuoi postalo pure, magari qualcuno può aiutarti meglio).

    Domanda: dove vuoi arrivare? Hai fatto un dump di $_SERVER? Quei tre elementi dell'array che ho postato cosa contengono?


  • User

    Ciao.
    No, purtroppo credo di avere capito in queste ultme ore che quello che chiedo non è possibile ..
    Il file .htaccess è in realtà piuttosto semplice:

    ########## Begin - Joomla! core SEF Section

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/index.php
    RewriteCond %{REQUEST_URI} (/|.php|.html|.htm|.feed|.pdf|.raw|/[^.])$
    RewriteRule (.
    ) index.php
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
    RewriteRule . %{REQUEST_FILENAME}.php%{PATH_INFO}

    ########## End - Joomla! core SEF Section

    C'è un'altra parte ma riguarda solo la sicurezza.

    Il fatto è che l'url originale "index.php?option=com_content&view=category&id=64" è salvato in un campo ("link")di una tabella di DB e associato ad un alias (campo "alias" dello stesso record) che posso scrivere io.
    Di fatto la riscrittura dell'url viene elaborata da joomla stesso che, leggendo l'url originale associato ad un certo alias, fornisce l'output di quella pagina.

    Ribadisco di non essere esperto di .htaccess, forse puoi interpretare quelle poche righe ma credo che aiutino solo a (es.) consentire di utilizzare url senza estensioni .php, .html ( come sto facendo io) etc. ma le variabili che cerco (id, category) non esistono nell'ambiente server che processa, di fatto, solo l'alias.
    Infatti print_r($_SERVER) fornisce solo riferimenti all'alias...quindi per risalire a quei parametri devo ri-interrogare il db e cercarli lì..

    Forse qualcun'altro può trovare utile questa riflessione che credo sia esatta..oppure smentirmi..


  • Super User

    :bho:

    Se vuoi posso spostare la discussione nel forum Joomla.. purtroppo non conosco come è fatto internamente.

    Dal punto del mod_rewrite semplice è come ho scritto sopra, ma se la richista passa per nonsisadove dovresti trovare il primo stage e modificare il codice direttamente.
    Questo potrebbe voler dire modificare il sorgente di Joomla (e non è bello, ad ogni aggiornamento...)