Apache DirectoryIndex指令不能与Ruby on Rails一起正常工作
我有一个站点,RubyonRails通过PhusionPassenger在根目录下运行。一些ApacheApache DirectoryIndex指令不能与Ruby on Rails一起正常工作,apache,passenger,mod-alias,directoryindex,Apache,Passenger,Mod Alias,Directoryindex,我有一个站点,RubyonRails通过PhusionPassenger在根目录下运行。一些ApacheAlias指令服务于静态HTML目录 如果您从其中一个静态目录请求文件的精确URL,Apache将按预期返回该URL。然而,在一些情况下,我没有得到预期的行为。考虑别名别名/函数/路径/函数/>代码>,其中函数目录包含索引x.php和hello .jpg .< /p> 请求按预期返回JPEG文件 请求将运行PHP脚本并按预期打印生成的HTML文档 请求将导致Rails堆栈中的404 请求(不带
Alias
指令服务于静态HTML目录
如果您从其中一个静态目录请求文件的精确URL,Apache将按预期返回该URL。然而,在一些情况下,我没有得到预期的行为。考虑别名<代码>别名/函数/路径/函数/>代码>,其中函数目录包含索引x.php和hello .jpg .< /p>
LoadModule passenger_module /path/to/mod_passenger.so
LoadModule ssl_module modules/mod_ssl.so
<IfModule mod_passenger.c>
# ... passenger setup stuff omitted ...
Listen 443
<VirtualHost *:443>
ServerName ...
DocumentRoot /path/to/rails/public
PassengerRuby /path/to/ruby
<Directory /path/to/rails/public>
Allow from all
Options -MultiViews
</Directory>
# ... ssl setup omitted ...
</VirtualHost>
</IfModule>
LoadModule passenger\u module/path/to/mod\u passenger.so
LoadModule ssl\u module modules/mod\u ssl.so
# ... 乘客设置的东西省略了。。。
听我说
服务器名。。。
DocumentRoot/path/to/rails/public
PassengerRuby/path/to/ruby
通融
选项-多视图
# ... ssl安装程序省略。。。
对于静态目录:
Alias /functional /path/to/functional/
Alias /phpMyAdmin /path/to/phpMyAdmin/
# ... other aliases omitted ...
<Directory /path/to/functional>
DirectoryIndex index.php
AllowOverride all
</Directory>
Alias/functional/path/to/functional/
别名/phpMyAdmin/path/to/phpMyAdmin/
# ... 省略了其他别名。。。
DirectoryIndex.php
允许超越所有
我已经尝试了中的大多数答案来加载index.php,但没有成功。我甚至不需要指定DirectoryIndex.php
,因为该行已经在conf.d/php.conf中了
如果Rails在Apache堆栈中的其他位置提供404 URL,您对如何解决这个问题有何想法?您是否尝试过替换这些URL
<Directory /path/to/functional>
与
我也有同样的问题。工作解决方案只是virtualhost服务乘客中的
重定向匹配
语句,如下所示:
RedirectMatch ^/path/to/functional(/)?$ /path/to/functional/index.php
RedirectMatch ^/path/to/functional(/)?$ /path/to/functional/index.php