Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Redirect avanzato

  1. #1

    Redirect avanzato

    Scusate se posto in questa sezione ma la sezione Apache non sembra molto frequentata ed io ho una certa urgenza.. spero che i moderatori non vogliano fustigarmi!!

    Ho una pagina dinamica all'indirizzo:

    unsito.com/pagina.php

    Questa pagina prende un parametro get che può avere solo 3 valori: 1, 2, 3. In pratica questa pagina dinamica da luogo a 3 pagine differenti le quali hanno questi url:

    unsito.com/pagina.php?parametro=1
    unsito.com/pagina.php?parametro=2
    unsito.com/pagina.php?parametro=3

    Ora, per vari motivi, ho deciso di sostituire la pagina dinamica con 3 pagine statiche, le quali hanno questi indirizzi:

    unsito.com/pagina/1.html
    unsito.com/pagina/2.html
    unsito.com/pagina/3.html

    Devo quindi effettuare un redirect delle pagine vecchie a quelle nuove. Ho provato ad usare questo .htaccess:

    codice:
    Redirect 301 /pagina.php?parametro=1 http://www.unsito.com/pagina/1.html
    Redirect 301 /pagina.php?parametro=2 http://www.unsito.com/pagina/2.html
    Redirect 301 /pagina.php?parametro=3 http://www.unsito.com/pagina/3.html
    Purtroppo non fuziona (e non posso fare il redirect con PHP). Qualcuno può aiutarmi?

  2. #2

  3. #3
    <?php
    if ($parametro)
    $pagina="http:\/\/www.unsito.net\/pagina\/".$parametro."html";
    else
    $pagina="http:\/\/www.unsito.net\/index.php";
    header("location:".$pagina);
    ?>
    il tesoro più prezioso è la mia libertà

  4. #4
    non ho capito perché ti devi creare 3 pagine statiche...

    a mio avviso sarebbe molto più performante utilizzare il mod_rewrite di apache, c'è una pillola che ti spiega bene come fare, prova a darci un'occhiata: http://forum.html.it/forum/showthrea...hreadid=871868


    praticamente il modrewrite dice ad apache di interpretare url apparentemente statici come se fossero dinamici, attraverso delle regole dettate dalla regular expression che definisci tu.
    In questo modo non devi crearti nessun doppione, mentre nel tuo caso dovresti crearti una pagina statica diversa a seconda del parametro che hai in GET.

    Poi vedi tu, se in questo caso sono solo 3 puoi anche lasciarlo così, ma se, come nel caso di un catalogo, hai anche diverse migliaia di prodotti stare a creare 10000 pagine statiche non è molto conveniente




    Talvolta anche una persona apparentemente inutile si rivela un abile samurai dalla forza di mille uomini, dimostrando di poter rinunciare alla vita e che il suo cuore si è completamente identificato con quello del suo padrone

  5. #5
    <?php
    if ($parametro)
    $pagina="http:\/\/www.unsito.net\/pagina\/".$parametro."html";
    else
    $pagina="http:\/\/www.unsito.net\/index.php";
    header("location:".$pagina);
    ?>
    Come detto, non posso usare PHP per fare il redirect per motivi che non adesso non sto a spiegare (ci vorrebbe un altro post altrettanto lungo del primo).


    a mio avviso sarebbe molto più performante utilizzare il mod_rewrite di apache, c'è una pillola che ti spiega bene come fare, prova a darci un'occhiata: http://forum.html.it/forum/showthre...threadid=871868
    So bene cos'è l'url rewriting e come usarlo (che programmatore web sarei altrimenti?? ), ma non è quello che serve a me. A me serve che quando una persona (o un MDR) tenti di accedere alla pagina

    unsito.com/pagina.php?parametro=1

    riceva un codice di stato 301 e venga reindirizzato alla pagina

    unsito.com/pagina/1.html

  6. #6
    a mio avviso sarebbe molto più performante utilizzare il mod_rewrite di apache, c'è una pillola che ti spiega bene come fare, prova a darci un'occhiata: http://forum.html.it/forum/showthre...threadid=871868
    Mi spiego meglio. L'url rewriting potrebbe pure andar bene purchè poi le pagine con indirizzo

    unsito.com/pagina.php?parametro=x

    restituiscano un codice 301 e l'utente venga reindirizzato. Con l'url rewriting invece le vecchie url continuano ad essere raggiungibili!

  7. #7
    codice:
    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{QUERY_STRING} ^parametro=(1|2|3)$  
    RewriteRule pagina.php?(.*) http://www.sito.it/pagina/%1.html? [R=301,L]

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.