2013-06-02 11 views
5

Sto cercando di riscrivere tutto www.site.com/hello to www.site.com/index.php?p=hello e funziona con il seguente codice (in .htaccess):RewriteCond con condizioni negative

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]*)/?$ /index.php?p=$1 

Ma voglio mantenere i vecchi legami di lavoro in modo www.site.com/?p=hello rimarrà www.site.com/?p=hello

ho provato il seguente codice ma non funziona

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !(\?p=) 
RewriteRule ^([^/]*)/?$ /index.php?p=$1 

risposta

5

I ho trovato una risposta

Errore durante il tentativo di ottenere i parametri GET con REQUEST_URI. L'utilizzo corretto dovrebbe essere con QUERY STRING come questo:

RewriteCond %{QUERY_STRING} !(p=.*)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]*)/?$ /index.php?p=$1