告诉Rails忽略特定的URL并让Apache处理

时间:2011-02-07 04:15:50

标签: ruby-on-rails apache

我通过Passenger在我的Apache服务器上运行了一个rails应用程序。

偶尔我会为网站使用一些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 个答案:

答案 0 :(得分:5)

我认为您可以在Passenger应用程序的主要Apache配置文件中执行此操作 - 这与此类似

<Directory "/.../myapp/php">
    PassengerEnabled off
    AllowOverride all
</Directory>
VirtualHost块中的

应该可以解决问题(关闭Rails,至少 - 打开PHP取决于你!)。

我的回答是基于ModRails Apache documentation - 有关PassengerEnabled命令的更多信息,请参阅第5.6节。