htaccess - REQUEST_URI e variabili

Donovant

Utente Attivo
24 Giu 2010
49
0
0
Vorrei capire cosa dovrebbe fare una direttiva del genere:

RewriteEngine on
RewriteCond %{REQUEST_URI} !index.php
RewriteRule (.*).php$ index.php?video=$1 [L]

Credevo che riportasse qualsiasi url NON contenente index.php ad index.php.
In più non ho capito cosa dovrebbe scrivere in "video=" $1.

Cmq l'unica cosa che noto è che la pagina visualizzata è sempre la index.php (anche se il nome dell'URL rimane quello che scrivo e non index.php), ad esempio se io scrivo ciao.php, non visualizzo la pagina ciao.php, ma index.php e l'URL cmq rimane ciao.php.

Spero di essermi spiegato :D
 

Donovant

Utente Attivo
24 Giu 2010
49
0
0
Ok "$1" corrisponde alla prima parentesi/variabile della RewriteCond ovvero "%{REQUEST_URI}", quindi quando da una pagina mi reindirizza su "index.php" si porta dietro come variabile $_GET la "$1", che sarebbe il nome dell'indirizzo della pagina da cui sono stato reindirizzato.

L'unica cosa ancora non compresa è come mai ilnome dell'URL non cambia ma resta quello originario, anche se mi trovo in index.php????
 

andrea_p

Nuovo Utente
2 Mag 2012
10
0
0
Ok, il spiegamento:

RewriteCond %{REQUEST_URI} !index.php

Condizione, che dice, che la prossima linea vale solo se il REQUEST_URI non e index.php. Per esempio:
Se il REQUEST_URI sarebbe /blablabla.php allora la condizione e vera
Se il REQUEST_URI sarebbe /index.php allora la condizione NON e vera


RewriteRule (.*).php$ index.php?video=$1 [L]

Regola, che dice, che tutto quello che finisce in .php si spacca in due pezzi: qullo che e fino a .php e il .php. Il primo pezzo poi si aggiunge al URI index.php?video=. Per esempio:
Se il URI sarebbe /blablabla.php allora la URI dove apache reindirizzasse sarebe /index.php?video=blablabla

spero di avermi spiegato ...