2013-06-02 13 views
5

Ich versuche, all www.site.com/hello to www.site.com/index.php?p=hello neu zu schreiben und es funktioniert mit dem folgenden Code (in .htaccess):RewriteCond mit negativen Bedingungen

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

Aber ich will arbeiten, um die alten Verbindungen halten, so wird www.site.com/?p=hellowww.site.com/?p=hello bleiben

ich habe den folgenden Code versucht, aber es wird

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

Antwort

5

ich nicht arbeiten habe eine Antwort gefunden.

Der Fehler wurde versucht, die GET Parameter mit REQUEST_URI zu erhalten. Die richtige Verwendung sollte mit QUERY STRING wie folgt sein:

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