Ciao a tutti, non so se questa e la sezione giusta, ci provo.
Ho un problema con l'ultilizzo della mod_rewrite, preciso che non sono molto esperto sto imparando pian pianino, ma sto impazzendo nel cercare di fare quanto segue:
premessa: sul mio sito ho messo una pagina di manutenzione è qui nasce il problema: la pagina di manutenzione non è una singola pagina html/php, ma bensì è all'interno di una cartella dove ci sono sottocartelle e vari file da cui facendo partire il file index.html carica tutta la pagina.
1) esempio con un singolo file html di manutenzione:
utilizzo la seguente mod_rewrite se il file index.html si trova nella root del sito:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^xx\.xx\.xx\.xx
RewriteCond %{REQUEST_URI} !/index.html$ [NC]
RewriteRule ^(.*)$ /index.html [R=301,L]
ed ottengo il risultato voluto: cioè mi ridireziona l'url alla pagina
nel browser se provo a digitare anche un altro file html presente nella root non me lo esegue in quanto redireziona sempre alla pagina index.html.
ovviamente se nel .htaccess alla prima riga metto il mio ip pubblico, riesco ad accedere andando alla pagina che voglio, mentre tutti gli altri vengono redirezionati. e fin qui tutto ok.
2) esempio, vorrei fare la stessa identica cosa, l'unica differenza e la pagina di manutenzione non è nella root, ma all'interno di una cartella nella root, e come dicevo all'intendo di questa cartella ci sono varie cartelle e file, utilizzo la seguente mod_rewrite:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^xx\.xx\.xx\.xx
RewriteCond %{HTTP_HOST} ^(www.)?miosito.it$
RewriteCond %{REQUEST_URI} !^/Maintenance/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /Maintenance/$1
RewriteCond %{HTTP_HOST} ^(www.)?miosito.it$
RewriteRule ^(/)?$ Maintenance/maintenance.html [L]
la mod_write funziona, però non fa quello che io vorrei, mi spiego, accedendo al mio sito parte correttamente la pagina di manutenzione, ma nella barra dell'indirizzo scrive solo
ci sto sbattendo la testa da 2 giorni, ma non riesco, ovviamente se uso il primo esempio, mi carica solo il file index.html, ma non carica tutte le immagini e altre cose presente nella cartella.
qualcosa sicuramente più esperto riesce per cortesia a darmi un aiuto sulla corretta scrittura del file .htaccess della mod_rewrite ????
Grazie a tutti per l'attenzione.
Softgallo
Ho un problema con l'ultilizzo della mod_rewrite, preciso che non sono molto esperto sto imparando pian pianino, ma sto impazzendo nel cercare di fare quanto segue:
premessa: sul mio sito ho messo una pagina di manutenzione è qui nasce il problema: la pagina di manutenzione non è una singola pagina html/php, ma bensì è all'interno di una cartella dove ci sono sottocartelle e vari file da cui facendo partire il file index.html carica tutta la pagina.
1) esempio con un singolo file html di manutenzione:
utilizzo la seguente mod_rewrite se il file index.html si trova nella root del sito:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^xx\.xx\.xx\.xx
RewriteCond %{REQUEST_URI} !/index.html$ [NC]
RewriteRule ^(.*)$ /index.html [R=301,L]
ed ottengo il risultato voluto: cioè mi ridireziona l'url alla pagina
Perfavore,
Entra
oppure
Registrati
per vedere i Link!
.nel browser se provo a digitare anche un altro file html presente nella root non me lo esegue in quanto redireziona sempre alla pagina index.html.
ovviamente se nel .htaccess alla prima riga metto il mio ip pubblico, riesco ad accedere andando alla pagina che voglio, mentre tutti gli altri vengono redirezionati. e fin qui tutto ok.
2) esempio, vorrei fare la stessa identica cosa, l'unica differenza e la pagina di manutenzione non è nella root, ma all'interno di una cartella nella root, e come dicevo all'intendo di questa cartella ci sono varie cartelle e file, utilizzo la seguente mod_rewrite:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^xx\.xx\.xx\.xx
RewriteCond %{HTTP_HOST} ^(www.)?miosito.it$
RewriteCond %{REQUEST_URI} !^/Maintenance/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /Maintenance/$1
RewriteCond %{HTTP_HOST} ^(www.)?miosito.it$
RewriteRule ^(/)?$ Maintenance/maintenance.html [L]
la mod_write funziona, però non fa quello che io vorrei, mi spiego, accedendo al mio sito parte correttamente la pagina di manutenzione, ma nella barra dell'indirizzo scrive solo
Perfavore,
Entra
oppure
Registrati
per vedere i Link!
e niente altro, ovviamente accedendo al sito se provo a digitare una altro file all'intendo della root me lo apre, invece io vorrei che sia come il primo esempio, cioe una redirect al file maintenance.html e non deve permettere di accedere ad altri file all'intendo del sito questo perche vorrei usare questo sistema quando devo accedere al miosito per fare manutenzione ovviamente inserendo nel remote adress il mio ip pubblico, facendo in modo che tutti gli altri vengano reindirizzati alla pagina di manutenzione senza possibilita di cambiare pagina, un po come nel primo esempio.ci sto sbattendo la testa da 2 giorni, ma non riesco, ovviamente se uso il primo esempio, mi carica solo il file index.html, ma non carica tutte le immagini e altre cose presente nella cartella.
qualcosa sicuramente più esperto riesce per cortesia a darmi un aiuto sulla corretta scrittura del file .htaccess della mod_rewrite ????
Grazie a tutti per l'attenzione.
Softgallo