Я пытаюсь реализовать новое правило перезаписи на моей локальной машине разработчика. У меня уже настроено 13 правил, и все они работают нормально (даже на момент написания статьи). Тем не менее, по какой-то причине самый новый выдает мне 500 внутренних ошибок сервера.
Правило перезаписи:
RewriteRule stuff/public_html/vault/mystuff/view/(.*) /stuff/public_html/vault/mystuff/view/index.php?stuff=$1
RewriteRule stuff/public_html/vault/mystuff/view/(.*)/ /stuff/public_html/vault/mystuff/view/index.php?stuff=$1
Проверил мои логи apache и получил это:
[Thu Jan 13 22:07:43 2011] [error] [client ::1] mod_rewrite: maximum number of internal redirects reached. Assuming configuration error. Use 'RewriteOptions MaxRedirects' to increase the limit if neccessary., referer: http://localhost:8888/stuff/public_html/vault/mystuff/all/index.php?curr=7
В скрипте, который я пытаюсь перенаправить на view / index.php? Stuff = $ 1, нет ничего, что даже отдаленно напоминало бы перенаправление любого вида. У меня есть очень, очень простой верификатор сеанса, вызываемый в верхней части сценария посадки, который выглядит следующим образом:
//Start session
session_start();
//Check whether the session variable SESS_MEMBER_ID is present or not
if(!isset($_SESSION['SESS_MEMBER_ID']) || (trim($_SESSION['SESS_MEMBER_ID']) == '')) {
header("location: ".$root_http."");
exit();
}
Однако, когда я получаю доступ к странице напрямую, она работает как надо, и перенаправления не происходит. Все остальные мои правила ReWrite и соответствующие им целевые страницы настроены точно так же.
Это поражает меня. Любая помощь, пожалуйста!?
По предложению Марка Б я включил RewriteLog и придумал следующее:
:: 1 - - [13 / Jan / 2011: 23: 00: 09 --0500] [localhost / sid # 807df8] [rid # 941b38 / initial / redir # 10] (2) [per-dir / Пользователи / stepheng / Development /] переписывают вещи / public_html / vault / mystuff / view / index.php -> /stuff/public_html/vault/mystuff/view/index.php?stuff=index.php
:: 1 - - [13 / Jan / 2011: 23: 00: 09 --0500] [localhost / sid # 807df8] [rid # 941b38 / initial / redir # 10] (3) split uri = / stuff /public_html/vault/mystuff/view/index.php?stuff=index.php -> uri = / stuff / public_html / vault / mystuff / view / index.php, args = stuff = index.php
:: 1 - - [13 / Jan / 2011: 23: 00: 09 --0500] [localhost / sid # 807df8] [rid # 941b38 / initial / redir # 10] (3) [per-dir / Пользователи / stepheng / Development /] применяют шаблон 'stuff / public_html / vault / mystuff / view /(.*)/' к uri '/stuff/public_html/vault/mystuff/view/index.php'
:: 1 - - [13 / Jan / 2011: 23: 00: 09 --0500] [localhost / sid # 807df8] [rid # 941b38 / initial / redir # 10] (1) [per-dir / Users / stepheng / Development /] внутреннее перенаправление с /stuff/public_html/vault/mystuff/view/index.php [ВНУТРЕННЕЕ НАПРАВЛЕНИЕ]
Похоже, что он пытается отправить аргумент? Stuff = index.php, но я не понимаю, как это возможно. Есть идеи?