Перенаправление с htaccess с использованием аналогичных правил - PullRequest
2 голосов
/ 27 марта 2012

Я использую .htaccess, чтобы переписать мои URL, и пока что почти работает как надо ...

У меня проблема в том, что mysite.com/author и mysite.com/author/submit/1 оба перенаправляют на одну и ту же страницу ( mysite.com / author .)

Вот правила переписывания, которые я сейчас использую:

RewriteRule ^author           /zabjournal/pages/author/active_submissions.php [L]
RewriteRule ^author/submit/1  /zabjournal/pages/author/submit_step1.php [L]

Как заставить работать второе правило?

1 Ответ

1 голос
/ 27 марта 2012

Это потому, что вы разместили правила в неправильном порядке.

Первое правило проверяется и выполняется, потому что author - первая строка в обоих URL-адресах.

/author
/author/submit/1
/author/blah
/author/blah/blah/blah/blah/blah

Все приведенные выше URL будут соответствовать первому правилу, поэтому оно будет выполнено.

[L] (что означает last ) в концеправило означает, что оно не будет обрабатывать другие правила, если это правило будет выполнено.

Но если вы измените порядок правил перезаписи, оно сначала проверит, соответствует ли URL-адрес /author/submit/1, и, еслиэто выполнит, он выполнит это переписывание и затем остановится;но если этого не произойдет, он перейдет к следующему правилу, которое в вашем примере будет /author.

...