我在一个子文件夹中运行带有Apache / Passenger的sinatra应用程序,其中包含以下.htaccess文件
<IfModule mod_passenger.c>
Options -MultiViews
Allow from all
PassengerResolveSymlinksInDocumentRoot on
RackEnv development
RackBaseURI /myapp
PassengerAppRoot /home/username/myapp
SetEnv GEM_HOME /mypath/ruby/gems
</IfModule>
我的Sinatra应用程序有两条路线
get '/' do
'Root Request'
end
get '/ok' do
'Ok Request'
end
我的根路径工作正常,但我的第二条路线永远不会被调用。我猜测Passenger和Apache之间的配置,但我无法弄明白。
这是在共享主机上运行的,因此我只能访问我的主目录而不是完整的Apache配置。
答案 0 :(得分:1)
好的,所以我不得不在盒子外面看。
问题出现在父文件夹(网站的根目录)的.htacess文件中,该文件具有如下的mod_rewrite规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
使用以下条件添加我的app文件夹后,一切都按预期开始工作:
RewriteCond %{REQUEST_URI} !^/myapp(.*)$ [NC]