• User Attivo

    Problema con redirect.... funzionante!

    Ciao, ragazzi.

    Posto questo quesito. All'apparenza pluritrattato, ma mi sono letto tutti i thread e questi problemi non sono mai specificati. **Sono disposto a pagare per una consulenza. Eventualmente contattatemi in PVT., **semprechè qualcuno non mi dia gentilmente una mano quì.

    Il problema è questo:

    sto cercando di applicare il mod_rewrite. Per provare, ho creato questa regola sull'htaccess:

    RewriteEngine on
    RewriteRule ^prova.html /prova.php [R=301,L]

    Questa regola funziona benissimo. l'unico problema è che il redirect viene fatto dalla nuova pagina (HTML) alla vecchia, in PHP!

    Visto poi che non funziona nemmeno con la formula:

    RewriteEngine on

    RewriteRule ^prova.html$ /prova.php
    Redirect permanent prova.php prova.html (o al contrario, le ho provate tutte!)

    Questa regola idem, è perfettamente funzionante. Solo che il redirect viene totalmente ignorato! Se scrivo il nuovo url (prova.html) sul browser, la pagina è perfetta!

    Così, ho pensato di lasciar perdere, e di fare solo la riscrittura con l'htaccess e il 301 da codice php.

    Sull'htaccess ho creato la regola:

    RewriteEngine on
    RewriteBase /
    RewriteRule ^prova.html$ /prova.php

    Perfetta, inserendo prova.html sul browser, la pagina è esistente e funzionante.

    ora, per il redirect, ho inserito ciò che segue all'inizio della pagina prova.php:

    <?
    Header( "HTTP/1.1 301 Moved Permanently" );
    Header( "Location: http://www.dominio.xxx/prova.php" );
    ?>

    Redirect perfettamente funzionante. Senonchè, per caricare la nuova pagina creata, ci vogliono 2 vite!!!!!

    Ho paura che questo metodo crei uno strano loop durante la riscrittura della pagina.

    Avete voglia di aiutarmi?

    Grazie mille.


  • Super User

    non capisco a cosa serva il redirect 301 (??)
    Non basta solo il rewriting dell'indirizzo?
    spiegati meglio 😉


  • User Attivo

    @probid said:

    non capisco a cosa serva il redirect 301 (??)
    Non basta solo il rewriting dell'indirizzo?
    spiegati meglio 😉

    Grazie intanto per avermi risposto 🙂

    Il redirect serve per far capire a google che quella pagina è stata spostata, e per reindirizzare gli utenti (che magari da qualche link sparso arrivano ad una delle vecchie pagine in PHP)

    Insomma, un classico mod_rewrite con redirect.


  • Super User

    <?php
    if($**_**SERVER[HTTP_REFERER]!="index.php"){
    Header( "HTTP/1.1 301 Moved Permanently" );
    Header( "Location: http://www.dominio.xxx/prova.php" );}
    ?>
    E dovresti risolvere il problema del loop 😉


  • User Attivo

    no, ancora non va.... se vuoi provare a vedere.... vedi la pagina about_us.php

    😞

    Scusa, comunque ho sbagliato a postare, prima... forse ti sei accorto. Sul redirect 301 il nome del file è prova.html, non PHP!
    Devo reindirizzare verso le pagine html 😄


  • Super User

    Scusa avevo sbagliato io.
    riprova così:
    [php]<?php
    if($_SERVER[HTTP_REFERER]!="about_us.php"){
    Header( "HTTP/1.1 301 Moved Permanently" );
    Header( "Location: http://www.dominio.xxx/about_us.html" );}
    ?>[/php]


  • User Attivo

    No, idem.... poi ora mi sa che dopo un po va a cercare la index_en.php.

    Cmq, ti segnalo che per un errore, ho scritto redirect > about_us.php, ma il reindirizzamento deve essere verso about_us.html 😉


  • User Attivo

    Esatto... vista la modifica... 🙂

    Comunque, come ti avevo detto, non va bene.... Qualche altra idea?
    Non si riesce solo inserendo il redirect direttamente sull'htaccess?


  • User Attivo

    Ciao. Aggiorno il thread, visto che ho una novità.

    Lasciamo perdere per un attimo il redirect da PHP.

    Ho provato ad inserire sul server un redirect tipo:

    Redirect 301 /VecchioUrl /NuovoUrl

    nella quale NuovoUrl è un'altra pagina PHP esistente. Ciò significa, niente rewrite, ma solo un redirect. Il risultato è.... nulla! viene completamente ignorato!

    Sarà un problema al server Apache, o un problema di qualche parametro da configurare?