Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Cambiare URL con RewriteRule

    Ho un sito in php in cui il menu e tutto ciò che rimane fisso per ogni
    pagina è contenuto in un file "home.php".
    A questa pagina passo un paramentro "dest" che indica quale pagina
    (contenente in pratica il contenuto desiderato) va caricata all'interno
    di questa struttura fissa.

    I link quindi mi risultano del tipo:
    http://www.sito.it/home.php?dest=pagina1.htm

    Vorrei far sì che scrivendo il solo nome della pagina
    desiderata ci venga aggiunto davanti tutto il resto del link. In pratica vorrei che un link del tipo "www.sito.it/pagina1.htm" venga
    interpretato "www.sito.it/home.php?dest=pagina1.htm"

    Preciso che i nomi delle pagine non seguono una logica particolare
    (tipo "pagina1", "pagina2" ecc) e che i file che vanno passati tramite
    "dest" possono avere estensione htm e php.

    Ho accesso al file .htaccess quindi posso usare RewriteRule e simile.
    Pero' non so quale sia il modo corretto

    Provato ho ottenuto dei risultati con
    RewriteEngine On
    RewriteBase /
    RewriteRule ^(.*)\.htm$ home.php?dest=$1.htm

    Per le pagine con estensione .htm funziona perfettamente, il problema
    è che se faccio lo stesso per le .php va in loop infinito (essendo
    sempre richiamata la pagina home.php). In pratica dovrei ridefinire
    l'URL per le pagine .php con nome diverso da "home"

    Mi sapete dire come fare?
    Grazie

  2. #2
    preciso che non l'ho mai fatto il rewriteUrl in questo modo, uso un modo diverso non potendo caricare htacces, coumnque essendo una regexp prova a fare una cosa del genere:

    RewriteRule ^(.*)\.(htm|php)$ home.php?dest=$1.$2

    non l'ho testato e non l'ho mai fatto



    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

  3. #3
    di per se funziona come quello che ho scritto io (solo che comprende in un'unica istruzione pagine html e php).
    Il problema è che quando richiamo una pagina qualsiasi viene richiamata la pagina "home.php" che richiama a sua volta la "home.php" e così via... ciclo infinito...

    Bisognerebbe escludere dalla regola la pagina home.php

  4. #4
    e se fai così:

    RewriteRule ^[^home]\.(htm|php)$ home.php?dest=$1.$2

    cambia qualcosa?
    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
    cambia sì, ma torna alla situazione originaria.
    se digito www.sito.it/pagina.htm mi apre solo pagina.htm e non tutta la struttura www.sito.it/home.php?dest=pagina.htm

  6. #6
    forse serve un'istruzione che dica che se il link è home.php?dest=... lo si deve tenere così com'è

  7. #7
    per ora ho risolto usando la priama istruzione che mi hai consigliato
    codice:
    RewriteRule ^(.*)\.(htm|php)$ home.php3?dest=$1.$2
    Per il problema della home.php richiamata all'infinito ho risolto rinominando la pagina "home.php3", così risulta esclusa dalla regola impostata.

    Se qualcuno mi sa dire come far funzionare la cosa lasciando il nome originale "home.php" resto in attesa...

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.