我在子文件夹中有一个运行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配置。
好的,所以我不得不在盒子外面看。
问题出在具有以下mod_rewrite规则的父文件夹(站点根)的.htacess文件中:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
在满足以下条件的情况下添加我的应用程序文件夹后,一切都按预期开始工作:
RewriteCond %{REQUEST_URI} !^/myapp(.*)$ [NC]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句