Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    Mah....

    codice:
    $file = __DIR__ . $_SERVER['REQUEST_URI'] . '.php';
    
    if (file_exists($file)) {
        include($file);
    } else {
        header('HTTP/1.0 404 Not Found');
        die('Page not found');
    }

  2. #12
    Utente di HTML.it L'avatar di Igreo
    Registrato dal
    Jun 2004
    Messaggi
    1,128
    Quote Originariamente inviata da filippo.toso Visualizza il messaggio
    Mah....

    codice:
    $file = __DIR__ . $_SERVER['REQUEST_URI'] . '.php';
    
    if (file_exists($file)) {
        include($file);
    } else {
        header('HTTP/1.0 404 Not Found');
        die('Page not found');
    }
    Questo non c'entra con HTACCESS.. inoltre un link inesistente del tipo https://www.miosito.it/folder/ darebbe un 404 già prima di arrivare a questo codice...

  3. #13
    Hai testato la soluzione prima di commentare?

    Il codice si comporta come dici in un unico caso, se esiste una cartella chiamata /folder
    Questa casistica NON è tra i requisiti che hai indicato.

    Ovviamente insieme a quell'index.php DEVI usare l'htaccess precedentemente postato.

  4. #14
    Utente di HTML.it L'avatar di Igreo
    Registrato dal
    Jun 2004
    Messaggi
    1,128
    Ti ringrazio molto, sto testando, ma con questa soluzione dovrei modificare tutte le pagine. Cercavo appunto una soluzione esclusivamente .htaccess!

    Riassumo.. uno script htaccess semplice che:

    - Da un link di questo tipo https://www.miosito.com/folder/ (che non esiste) mi porti senza redirect (cioè lasciando l'url intatto) a https://www.miosito.com/folder.php

    - Da un link di questo tipo https://www.miosito.com/folder1/folder2 (che non esiste) mi porti senza redirect (cioè lasciando l'url intatto) a https://www.miosito.com/folder1/folder2.php

    Grazie ancora

  5. #15
    NON devi modificare tutte le pagine.

    Usi le regole dell'.htaccess fornito e gestisci il routing interno con lo script PHP fornito.

    Se ti è più comodo, rinomina il file PHP in una cosa tipo router.php e aggiorna la relativa rewrite rule.

  6. #16
    Utente di HTML.it L'avatar di Igreo
    Registrato dal
    Jun 2004
    Messaggi
    1,128
    Non so se ho capito.. comunque ti aggiornerò, ma mi sorge un dubbio!?
    E le variabili? Cioè:

    - Da un link di questo tipo https://www.miosito.com/folder/?var1=val1&var2=val2 (che non esiste) mi porti senza redirect (cioè lasciando l'url intatto) a https://www.miosito.com/folder.php?var1=val1&var2=val2

    :P

  7. #17
    Utente di HTML.it L'avatar di Igreo
    Registrato dal
    Jun 2004
    Messaggi
    1,128
    OK RISOLTO, o perlomeno mi sembra!

    codice:
    <IfModule mod_rewrite.c>
        <IfModule mod_dir.c>
            DirectorySlash On
        </IfModule>
        <IfModule mod_negotiation.c>
            Options +FollowSymLinks -MultiViews -Indexes
        </IfModule>
        RewriteEngine On
        RewriteBase /
    
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} !\.php
        RewriteRule ^(.*)$ $1.php [NC,QSA,L]
    
    </IfModule>
    Se trovate errori o miglioramenti.. sono qui apposta!

    Vi pongo due domande:
    1) $1 non contiene tutto l'url o meglio le variabili passate con ?var1=val1&var2=var2 non vengono contenute nella $1. Giusto? Difatti lo script pone automaticamente le variabili dopo il .php! Non capisco molto come agisce ma pare farlo..

    2) E' inutile aggiungere %{QUERY_STRING} subito dopo $1.php?

    Grazie ancora :P

  8. #18
    La variabile query string ti serve se devi sostituire qualcosa

  9. #19
    Utente di HTML.it L'avatar di Igreo
    Registrato dal
    Jun 2004
    Messaggi
    1,128
    Si grazie. Lo script funziona alla perfezione!
    Posto l'ultima Release:

    codice:
    <IfModule mod_rewrite.c>
    #DirectorySlash per non avere problemi con lo slash alla fine o meno del link
        <IfModule mod_dir.c>
            DirectorySlash On
        </IfModule>
    #Modulo negotiation per dare la possibilità al server di cercare delle pagine attinenti anche se non presenti
        <IfModule mod_negotiation.c>
            Options +FollowSymLinks -MultiViews -Indexes
        </IfModule>
        RewriteEngine On
        RewriteBase /
    #Questi  due rewrite sono per portarli su www e https 
        RewriteCond %{HTTP_HOST} !^www\. [NC]
        RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301]
        RewriteCond %{HTTPS} off
        RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
    #Con questo rewrite elimino la scritta index.php dai link ma non per le chiamate POST
        RewriteCond %{REQUEST_METHOD} !POST
        RewriteRule ^(.*)index\.php$ $1 [R=301,NC]
    #Con questo Rewrite solo per le News che da un link news/id/titolo redirige, senza modificare l'url, alla pagina .php
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} ^/news/(.+)
        RewriteCond %{REQUEST_URI} !\.php
        RewriteRule ^news/(.[^/]*)/?(.[^/]*)/?$ news.php?user=$1&nam=$2 [NC,QSA,L]
    #Con questo Rewrite redirigo tutte le pagine che non esistono (esempio cartella/miapagina), senza modificare l'url alla pagina, alla pagina .php sia essa in una cartella sia no (esempio cartella/miapagina.php).
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} /?$
        RewriteCond %{REQUEST_URI} !\.php
        RewriteRule ^(.*[^/])/?$ $1.php [NC,QSA,L]
    </IfModule>


    PS. Se qualcuno vuole apportare miglioramenti... :P

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