2014-10-24 3 views
1

У меня есть эти два правила в моем htacces файл:Как исправить перенаправления при наличии два RewriteRules

#rewrite pagnition 
    RewriteRule ^([a-zA-Z0-9_!-]+)/([a-zA-Z0-9_!-]+)$ index.php?sideID=$1&currentpage=$2 

выхода URL: http://example.com/blog/2

#rewrite services 
    RewriteRule ^([a-zA-Z0-9_!-]+)/([a-zA-Z0-9_!-]+)$ index.php?sideID=$1&p=services/oneservice/$2 

Выхода URL: http://example.com/services/oneservice

первого работайте как шарм, но при доступе к 2-м я несколько раз сталкиваюсь с перезагрузкой страницы, пока сервер не выйдет из строя.

Если я отключу первый, то работа с сайтом, как и следовало бы, если у кого-то есть хорошая душевная привязанность к этому, это будет проверено.

+0

Вы пытались добавить флаг L? http://stackoverflow.com/a/17144329/4154134 – jdussault

+0

я сделал, все тот же issiue. – sdfgg45

ответ

1

Это происходит потому, что ваше оба регулярных выражения совпадают с одинаковыми URL-адресами. Уточните ваши правила:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

# output url: http://example.com/blog/2 
RewriteRule ^([\w!-]+)/([0-9]+)/?$ index.php?sideID=$1&currentpage=$2 [L,QSA] 

# rewrite services 
RewriteRule ^([\w!-]+)/([\w!-]+)$ index.php?sideID=$1&p=services/oneservice/$2 [L,QSA] 
+0

Шов для работы, но если я хочу добавить другое правило: RewriteRule^([\ w! -] +)/([\ w! -] +) $ index.php? SideID = $ 1 & p = services/twoservice/$ 2 [L, QSA]? должно ли регулярное выражение быть другим? – sdfgg45

+0

Да, определенно фиксирующее регулярное выражение должно быть разным в каждом 'RewriteRule' – anubhava

+0

может ли конечная часть: services/oneservice/$ 2 быть захвачена, чтобы быть регулярным, чтобы я мог запускать одно правило? или это должно быть одно правило для eatch, например: & p = services/oneservice/$ 2, & p = services/two/$ 2 и & p = services/tird/$ 2 – sdfgg45

Смежные вопросы