Ошибка mod_rewrite: [клиент 127.0.0.1] Файл не существует - PullRequest
0 голосов
/ 22 сентября 2011

Я хочу начать использовать mod_rewrite, чтобы я мог использовать дружественные ссылки в будущем.Я проверяю все в моем локальном dev.окружающая среда, но мне не повезло заставить модуль работать!

Мои модули включены (перезапущен apache):

LoadModule rewrite_module modules/mod_rewrite.so

Файл с именем mod_rewrite.so существует в папке модулей вмой каталог установки Apache

Я создал файл с именем .htaccess в каталоге c: / public_html /

. В целях тестирования я создал свои первые правила, например:

RewriteEngine On
# Translate my-product.html to /product.php?id=123
RewriteRule ^my-product\.html$ /product.php?id=123

для тестирования, product.php чрезвычайно прост:

<?php
  // display product details
  echo 'You have selected product #' . $_GET['id'];
?>

Когда я загружаю http://localhost/my-product.html Я получаю ошибку:

The requested URL /my-product.html was not found on this server.

Когда я иду посмотретьжурнал, я вижу:

[Thu Sep 22 02:37:49 2011] [error] [client 127.0.0.1] File does not exist: C:/public_html/my-product.html

Похоже, он вообще не распознает правило .htaccess!

Я не уверен, что делать дальше, я чувствую, что 'Мы применили все самые простые правила, чтобы начать работу с mod_rewrite, но не повезло!

Помощь!

Спасибо Марко

Ответы [ 2 ]

4 голосов
/ 22 сентября 2011

Вы изменили свойство Allowoverride в файле httpd.conf на «Все».

Чтобы проверить, включен ли mod-rewrite на вашем сервере, загрузите файл phpinfo и найдите расширение mod_rewrite.

1 голос
/ 22 сентября 2011

Вам необходимо настроить ведение журнала mod_rewrite, чтобы вы могли видеть, что происходит. Посмотрите директиву RewriteLog в руководстве.

Изначально вы можете установить уровень записи 9 (для обучения). Пока файл остается пустым, .htaccess игнорируется, как вы уже подозревали.

Вы также можете просто написать мусор в .htaccess, чтобы увидеть, интерпретируется ли он вообще. Если это произойдет, вы получите 500 Internal Server Error. Если нет, вы должны настроить каталог C:/public_html, чтобы разрешить файлы htaccess. См. Директиву Options в руководстве.

...