2016-10-25 3 views
1

Я довольно новый с переписыванием url, и сегодня у меня возникает проблема, когда я не могу найти решение для решения.RewriteEngine испортил первый RewriteConds после добавления нового

Вот мой .htaccess RewriteConds который является работает

Options +FollowSymlinks 
RewriteEngine On 

RewriteCond %{REQUEST_URI} models/([a-z\-A-Z]+)/([a-z\-A-Z]+) 
RewriteRule (.*) p.php?model=%1&media=%2 [L] 

RewriteCond %{REQUEST_URI} models/([a-z\-A-Z]+) 
RewriteRule (.*) orderby.php?model=%1 [L] 

Однако при добавлении нового RewriteCond перенаправлять models.php к website.com/models. Он работает, но рев RewriteCond больше не работает.

RewriteCond %{REQUEST_URI} models 
RewriteRule (.*) models.php [L] 

У кого-нибудь есть представление о том, что я делаю неправильно?

ответ

1

Вы должны использовать анкеры в своем регулярном выражении, чтобы избежать сопоставлений ненужной части:

Options +FollowSymlinks -MultiViews 
RewriteEngine On 

RewriteCond %{REQUEST_URI} /models/([a-z\-A-Z]+)/([a-z\-A-Z]+)/?$ [NC] 
RewriteRule . p.php?model=%1&media=%2 [L,QSA] 

RewriteCond %{REQUEST_URI} /models/([a-z\-A-Z]+)/?$ [NC] 
RewriteRule . orderby.php?model=%1 [L,QSA] 

RewriteCond %{REQUEST_URI} /models/?$ [NC] 
RewriteRule . models.php [L] 
Смежные вопросы