2017-07-05 1 views
1

Zuerst alles, ich bin kein Experte für. Htaccess und Rewrite Rules..htaccess Multiple Rewrite Rule überschreiben Problem

Ich habe einige Rewrite-Regeln und alle von ihnen funktionieren. Wenn ich neue Regeln hinzugefügt habe; es überschreibt andere Regeln und Umleitung falsche Seite

RewriteRule ^([^/]+)/([0-9]+)/?$ article-list.php?link=$1&page=$2 [L,QSA,NC] 
RewriteRule ^([^/]+)/?$ article-list.php?link=$1 [L,QSA] 
RewriteRule ^videolar/$ video-list.php?page=$1 [L,QSA] 

Wenn ich versuche, URL zu treffen www.mywebpage.com/videolar/1

Unfourtunately ist es zu article-list.php Seite umgeleitet werden.

Gibt es eine Möglichkeit, das Problem zu lösen?

Jede Hilfe wird sehr geschätzt.

Voller Htaccess;

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase/

RewriteRule ^uye-ol/?$ register.php [L,NC] 
RewriteRule ^uye-girisi/?$ login.php [L,NC] 
RewriteRule ^sifremi-unuttum/?$ forget-password.php [L,NC] 
RewriteRule ^yazarlar/?$ writer-list.php [L,NC] 
RewriteRule ^videolar/?$ video-list.php?page=$1 [L,QSA] 
RewriteRule ^foto-galeri/?$ gallery-list.php [L,NC] 
RewriteRule ^biyografiler/?$ biography-list.php [L,NC] 
RewriteRule ^yazar/([^/]+)-([^/]+)/([^/]+)-([^/]+)/?$ writer-article.php?link=$1&writerId=$2&articleLink=$3&writerArticleId=$4 [L,QSA] 
RewriteRule ^yazar/([^/]+)-([0-9]+)/([0-9]+)/?$ writer-article-list.php?link=$1&writerId=$2&page=$3 [L,QSA] 
RewriteRule ^foto-galeri/([0-9]+)/?$ gallery-list.php?page=$1 [L,QSA] 
RewriteRule ^foto-galeri/([^/]+)-([^/]+)/([^/]+)/?$ gallery-photo.php?link=$1&i=$2&photo=$3 [L,QSA] 
RewriteRule ^videolar/([^/]+)-([^/]+)/?$ video.php?link=$1&i=$2 [L,QSA] 
RewriteRule ^haber/([^/]+)-([^/]+)/?$ article.php?link=$1&i=$2 [L,QSA] 
RewriteRule ^biyografi/([^/]+)-([^/]+)/?$ biography.php?link=$1&bioId=$2 [L,QSA] 
RewriteRule ^([^/]+)/([0-9]+)/?$ article-list.php?link=$1&page=$2 [L,QSA,NC] 
RewriteRule ^([^/]+)/?$ article-list.php?link=$1 [L,QSA] 
RewriteRule ^videolar/$ video-list.php?page=$1 [L,QSA] 

Antwort

1
RewriteRule ^([^/]+)/([0-9]+)/?$ article-list.php?link=$1&page=$2 [L,QSA,NC] 
RewriteRule ^([^/]+)/?$ article-list.php?link=$1 [L,QSA] 
RewriteRule ^videolar/$ video-list.php?page=$1 [L,QSA] 

Sie müssen die Reihenfolge dieser Richtlinien ändern, so dass die spezifische erste. So wie es aussieht, stimmt die erste Direktive mit der URL /videolar/1 überein und "gewinnt".

Die letzte Regel, die Sie haben, passt jedoch nicht zu /videolar/1 (es passt nur /videolar/), so dass das Muster geändert werden muss.

Probieren Sie etwas wie das folgende statt:

RewriteRule ^videolar/([0-9]+)/?$ video-list.php?page=$1 [L,QSA] 
RewriteRule ^([^/]+)/([0-9]+)/?$ article-list.php?link=$1&page=$2 [L,QSA,NC] 
RewriteRule ^([^/]+)/?$ article-list.php?link=$1 [L,QSA]