2017-07-05 31 views
1

まず、私は.htaccessと書き換えルールの専門家ではありません。.htaccess複数の書き換えルールの上書きの問題

私はいくつかの書き換えルールを持っており、それらのすべてが機能しています。 新しいルールを追加したとき。それは他のルールを上書きし、私は

Unfourtunatelyそれはarticle-list.phpページへのリダイレクトのURL www.mywebpage.com/videolar/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] 

をリダイレクトしています。

問題を解決する方法はありますか?

どのようなヘルプも大いに飾られます。

フル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] 

答えて

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] 

あなたは、最も具体的には最初になるように、これらのディレクティブの順序を変更する必要があります。それがそのままで、最初のディレクティブはURL /videolar/1と一致し、 "wins"と一致します。

ただし、最後のルールは/videolar/1と一致しません(/videolar/にのみ一致します)ので、パターンを変更する必要があります。

は、代わりに次のようなものを試してみてください:

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] 
関連する問題