Visualizzazione dei risultati da 1 a 4 su 4

Discussione: htaccess + RewriteRule

  1. #1

    htaccess + RewriteRule

    Salve, ho visto che sul forum già ci sono molti post al riguardo ma pur consultandoli non riesco a venire a capo del mio problema.

    Ho un sistema Ubuntu Linux+PHP5 e ho creato all'interno della root www un file .htaccess

    il contenuto del file è il seguente:
    codice:
    RewriteEngine On
    RewriteRule ^file/([0-9]+)/?.html$ index.php?id=$1 [L,QSA]
    A prescindere che non ho idea di cosa significhino [L,QSA] però in sostanza, almeno da quello che mi aspetto, chiamando la pagina http://localhost/file1.html dovrebbe essere l'equivalente di chiamare http://localhost/index.php?id=1

    Purtroppo però si ostina a dire che la pagina http://localhost/file1.html non esiste sul server.

    La mia domanda è: sbaglio la sintassi di RewriteRule? Sbaglio l'interpretazione di quello che dovrei scrivere come url? O manca qualcosa al mio sistema?

    Grazie in anticipo per qualsiasi aiuto.

  2. #2
    Uff, ho risolto, infatti non era un problema si htaccess, come temevo, ma di configurazione di sistema.

    Prima di poter usare gli .htaccess va fatta questa cosa, lo spiego così altri non cadono in errore come me

    Ho risolto sia sotto ambiente Ubuntu linux che Windows.

    Soluzione Ubuntu con Apache2:

    1° Attivare il mod_rewrite
    Assicurarsi che non sia già attivo chiedendo il phpinfo() e controllando alla voce Loaded Modules.
    In caso non sia presente la voce mod_rewrite creare un link simbolico al modulo presente.

    codice:
    sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
    2° Modificare le impostazioni di Apache2
    Aprire in modifica il file /etc/apache2/sites-available/default
    Modificare le occorrenze di AllowOverride None in AllowOverride All e salvare

    3° Riavviare Apache: sudo /etc/init.d/apache2 restart


    Soluzione Windows con Apache2 (stranamente meno complessa che su Ubuntu).

    1° Modificare httpd.conf
    Su XP il file si trova quì: C:\Programmi\Apache Software Foundation\Apache2.2\conf
    Aprirlo, decommentare la riga LoadModule rewrite_module modules/mod_rewrite.so
    Cercare tutte le occorrenze di AllowOverride None e cambiarle in AllowOverride All.
    Salvare.

    2° Riavviare Apache (in genere io lo faccio dall'iconcina tray)


    Ora si può usare .htaccess.

    Ovviamente ho dovuto correggere anche .htaccess che non funzionava, scrivendo:

    codice:
    RewriteEngine On
    RewriteRule ^file([0-9]+).html index.php?id=$1 [L,QSA]
    funziona esattamente come volevo.

  3. #3
    Grazie...

    ci stavo sbattendo la testa..
    la tua spiegazione è chiarissima
    ho fatto...

    devo solo riavviare il computer ed assicurarmi che funzioni
    Gianfranco D'Atri
    B&B Filomena e Francesca Via Della Giuliana, 72 - int 22 00195 Roma
    web-site: http://www.bbfandf.com

  4. #4
    Funziona...
    Gianfranco D'Atri
    B&B Filomena e Francesca Via Della Giuliana, 72 - int 22 00195 Roma
    web-site: http://www.bbfandf.com

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 © 2024 vBulletin Solutions, Inc. All rights reserved.