Bezdepbonusu7Программирование: статьи и ответы

Вопрос

URL-адреса каталогов Apache/Rails/Passenger, которые не заканчиваются на "/", не соответствуют 404

Автор вопроса: CommunityОтветов: 2

Я использую Apache с пассажиром для запуска приложения rails. В моем приложении rails у меня есть статический контент в подкаталогах общедоступного каталога. В каждом подкаталоге есть index.html.

Итак, внутри общедоступного каталога у меня есть подкаталог с именем "b", а внутри него находится index.html. Вот так:

/public/b/index.html

У меня есть ссылки на эти страницы в виде:

http://a.com/b

Если я сделаю это в своем обычном веб-каталоге, отличном от Rails, Apache правильно заменит этот URL-адрес на http://a.com/b/ который затем показывает index.html. Только при доступе к моему приложению rails оно не работает. На самом деле, если я отключу пассажирский мод... чтобы он просто обращался к моему приложению rails, как к обычному корневому каталогу документов, он также работал правильно.

Что, черт возьми, мне нужно сделать, чтобы это правильно работало с пассажиром? Опять же, он отлично работает в самом apache, когда пассажир не участвует.

У меня пассажир 2.1.3. У меня есть еще один сервер с пассажиром 2.0, на котором, похоже, нет этой проблемы, но я не вижу ничего другого в конфигурации, кроме разных версий самого пассажира.

ПОМОЩЬ! Работал над этим в течение двух дней без каких-либо улучшений!

linuxruby-on-railsapachepassenger

Ответы

Ответ 1 · MarkusQ

У вас включен PassengerHighPerformance? Это может помешать индексным страницам.

Ответ 2 · ktheory

Добавьте следующее правило перезаписи в конфигурацию apache:

# Turn on URL rewriting
RewriteEngine On
# For a given url foo, check if foo/index.html exists as a static file
RewriteRule ^([^.]+)$ $1/index.html [QSA]

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы