2016-08-17 2 views
2

ich einen Code zu schreiben und eine .htaccess-Datei erstellen, die den folgenden Inhalt hat:.htaccess RewriteRule Konflikt

RewriteEngine on 

RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?id=$1 [NC,L] # Handle page requests 
RewriteRule ^category/([A-Za-z0-9-]+)/?$ category.php?cat=$1 [NC,L] # Handle category requests 
RewriteRule ^author/([A-Za-z0-9-]+)/?$ author.php?auth=$1 [NC,L] # Handle author requests 

Die erste Regel funktioniert gut, aber diese scheint Konflikt mit der ersten Regel hat. Jedes Mal, wenn ich auf eine URL unter oder http://example.com/author/fooauthor/ zugreife, erhalte ich immer die Meldung, dass die Seite nicht gefunden werden kann, weil sie immer noch versucht, die Indexdatei zu öffnen.

Gibt es eine Möglichkeit, damit umzugehen?

Antwort

2

Sie können allgemeine Regel in der letzten Zeile gesetzt:

RewriteEngine on 

RewriteRule ^category/([A-Za-z0-9-]+)/?$ category.php?cat=$1 [NC,L]  
RewriteRule ^author/([A-Za-z0-9-]+)/?$ author.php?auth=$1 [NC,L] 
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/?$ index.php?id=$1 [NC,L] 

Dieses Problem geschah, weil erste Linie unterstützen alle Urls

+0

Ach, das macht Sinn. Funktioniert wie ein Zauber, Danke, Bruder. – crozland23

+1

Sie sind willkommen, Ihre Stimme oben kann anderen helfen, die richtige Antwort zu sehen –

+0

kann ich noch nicht upvote wegen meines Rufes. Wird Ihre Antwort in 10 Minuten akzeptieren, wie es das System erlaubt. – crozland23