2016-08-03 12 views
1

Dies sind meine aktuellen .htaccess Daten.Wie RewriteRule für bestimmtes Verzeichnis zu vermeiden?

# permalinks 
RewriteEngine on 

# users 
RewriteRule ^([a-z0-9_-]{2,15})$ /user.php?username=$1 [QSA,L] 

Was bedeutet offensichtlich, dass

http://testsite.net/asantos 

analysiert wird, wie:

http://testsite.net/user.php?username=asantos 

Die Website auch ein inc Verzeichnis im Stamm hat, und wenn ich öffnen diese URL

http://testsite.net/inc/ 

leitet es tatsächlich zu:

http://testsite.net/inc/?username=inc 

Wie kann ich dieses Verhalten für bestehende Verzeichnisse zu vermeiden, die in der Wurzel der Website sind?

Antwort

1

Wie kann ich dieses Verhalten für vorhandene Verzeichnisse vermeiden, die sich im Stammverzeichnis der Website befinden?

Verwendung:

# permalinks 
RewriteEngine on 

# skip all files and directories from rewrite rules *below* 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

RewriteRule ^([a-z0-9_-]{2,15})$ /user.php?username=$1 [QSA,L] 

# more rules here 
+0

Muss ich, um diese 'RewriteCond' Bedingungen vor jedem' RewriteRule' angeben? – andufo

+0

sehen Sie meine aktualisierte Antwort, jetzt müssen Sie diese Bedingungen nicht für alle Regeln unter dieser Überspringregel wiederholen. – anubhava

+0

Ein weiterer Fall, es funktioniert nicht, wenn ich testsite.net/inc verwende - es funktioniert nur, wenn ich testsite.net/inc/ – andufo