我在使用Apache作为Web服务器的服务器上运行了一个RoR应用程序。我也有一个moodle的实例,一个基于PHP运行的LMS。我已将moodle的web根目录放在RoR空间内,并且大部分工作正常。
在moodle内部,如果我去sitename.com/moodle/my RoR拦截该请求并报告它无法找到该页面。如果我去sitename.com/moodle/my/index.php它可以正常工作。
我尝试创建一个新的虚拟服务器,但是在443上运行的第二个服务器没有用(基于RoR的站点都在ssl下)。
有没有人知道告诉RoR忽略moodle目录或让RoR自动检测并将index.php附加到路径的方法。
答案 0 :(得分:0)
我遇到同样的问题是apache2配置与下面描述的相同类型的问题。 示例文件夹是rails应用程序文件夹,“/ en / blog”是rails应用程序的公用文件夹中的文件夹路径,其中我有一个wordpress安装,所以在配置允许的apache关闭乘客请求“http:/ example .com / en / blog“所以这个请求不是乘客处理的,这个请求是作为普通的php请求服务所以我能够在同一台服务器上运行一个wordpress博客和一个rails应用程序。
#!!!务必将DocumentRoot指向“公开”!
DocumentRoot /var/www/example/public
#RailsEnv production
<Directory /var/www/example/public>
# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
</Directory>
<Location /en/blog>
PassengerEnabled off
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /en/blog/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /en/blog/index.php [L]
</IfModule>
</Location>