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

    Problema RewriteRule Condizionale

    Salve,
    ho la necessità di fare un redirect temporaneo di alcuni link ad uno specifico file. Però alcune sottocartelle mi serve che siano escluse.

    Esempio ho un albero di directory fatto così:
    codice:
    /
    |---- home/
    |	 |
    |	 |--- admin/
    |	 |--- user/
    |	 |--- altro/
    |	 |--- file.php
    |---- public/
    |---- other/
    ora vorrei che tutti le url che puntano a file in "home" vengano redirectati in "Intro.html" e che se si tenta di accedere ad una sottodirectory, ad esempio "admin" o "user" venga ignorato il redirect e tutto funzioni normalmente.

    Ora io ho fatto:
    codice:
    RewriteEngine On
    
    RewriteRule \.php Intro.html
    però questo ovviamente fa il redirect di tutti i file ".php" verso "Intro.html" ma se tento di accedere ad "admin" mi esegue ugualmente quella regola...come faccio a far ignorare la regola in quelle due condizioni?
    [/code]
    Administrator of NAMDesign.Net

  2. #2
    quello che hai fatto tu non fa un redirect ma abilita la riscrittura degli url, abilita nel senso che se tu scrivi pippo.php lui visualizza intro.html anche se poi cmq non so quanto funzioni perchè mi sa che mancano dei parametri, ma lidea di quellistruzione è questa.

    forse quello che cerchi tu è più qualcosa del tipo

    redirect /intro.html http://tuosito.ext/pagina.ext

    nota bene che è solo un esempio che poi dovrai ben ottimizzare per usarlo nel tuo sito

  3. #3
    Ciao,
    ti ringrazio per aver risposto...non ci contavo quasi più.

    Si quello che fa il codice che ho scritto è una riscrittura della url che alla fine porta ad aprire il file "Intro.html" ed hai ragione anche sul fatto che andrebbe migliorata (di molto).

    Però il punto che più mi interessava era come far escludere dal discorso riscrittura/redirect determinate sottocartelle. Perchè allo stato attuale qualsiasi cosa scrivo (ovviamente che sia un percorso valido) vengo riportato alla "Intro.html"....mentre io vorrei mantenere la possibilità di accedere al pannello amministrativo.
    Administrator of NAMDesign.Net

  4. #4
    Utente di HTML.it L'avatar di Enoa
    Registrato dal
    Jul 2005
    Messaggi
    573
    Se il .htaccess è in /home, puoi provare:
    codice:
    RewriteEngine On
    
    RewriteCond %{REQUEST_URI} !^/home/user
    RewriteCond %{REQUEST_URI} !^/home/admin
    RewriteCond %{REQUEST_URI} !^/home/altro
    RewriteRule ^(.*).php Intro.html [L]
    oppure più semplicemente
    codice:
    RewriteEngine On
    
    RewriteRule ^([^/]*).php Intro.html [L]
    ed escludi tutte le sottocartelle

  5. #5
    Eri sulla strada giusta.
    Prima della rewriterule specifica le rewritecond escludendo i percorsi che non ti interessano.
    http://httpd.apache.org/docs/2.0/mod...ml#rewritecond

    Per eseguire un redirect via rewriterule è sufficiente appendere il flag R alla file.

    codice:
    RewriteRule ^/foo$ http://bar.com [R=302,R]
    è equivalente a

    codice:
    RedirectMatch 302 ^/foo$ http://bar.com

  6. #6
    Vi ringrazio, sono riuscito a risolvere il problema.

    Avete qualche link o guida da consigliarmi per le regexp e magari gli htaccess?
    Administrator of NAMDesign.Net

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.