Скажите Rails игнорировать определенный URL и позволить Apache обрабатывать - PullRequest
3 голосов
/ 07 февраля 2011

У меня есть приложение rails, работающее на моем сервере Apache через Passenger.

Иногда я использую некоторые сценарии PHP для веб-сайта и помещаю их в общедоступный каталог.

Когда я захожу в / php /, я хочу, чтобы Apache обработал запрос с помощью синтаксического анализатора PHP, а rails игнорировали его.

В настоящее время я могу зайти в /php/index.php, и он отлично работает. Однако мне нужно / php / для работы, но rails продолжает искать контроллер для его обработки.

У меня такое ощущение, что это как-то связано с правилами переписывания apache, но я не могу понять это.

Я использовал

RewriteEngine On 
RewriteRule ^php - [L] 
RewriteBase / 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 

в файле /php/.htaccess, но это не работает. Я до сих пор получаю сообщение об ошибке «Не найдена страница» от Rails.

1 Ответ

5 голосов
/ 07 февраля 2011

Я думаю, вы можете сделать это в главном конфигурационном файле Apache вашего приложения Passenger - что-то вроде этого

<Directory "/.../myapp/php">
    PassengerEnabled off
    AllowOverride all
</Directory>

внутри вашего блока VirtualHost должно быть сделано (по крайней мере, отключить Rails - включить PHP - дело за вами!).

Мой ответ основан на документации ModRails Apache - подробности о команде PassengerEnabled см. В разделе 5.6.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...