Je n'ai pas encore décidé si c'est un problème d'Apache, ou un problème de Sinatra, nous avons un tas de petites applications fonctionnant sur un seul serveur, nous les déployons avec juste des instances webrick intégrées et utilisons apache pour re acheminez ces demandes par sous-domaine vers le port approprié. J'utilise gollum qui est une application sinatra avec une couche de persistance git, mais je reçois un routage d'application inattendu quand il redirige (après une action d'édition). Je ne sais pas si je peux résoudre ce problème en transmettant une option de démarrage à Sinatra ou en configurant dans la déclaration de l'hôte virtuel une règle de réécriture pour l'application. Dans votre réponse, veuillez indiquer quelle option vous semble la meilleure et un exemple de la façon dont cela pourrait être accompli. Merci,S'agit-il d'un problème de configuration Sinatra ou d'un problème de configuration Apache?
# apache virtualhost declaration
<VirtualHost *:80>
ServerName wiki.domain.com
DocumentRoot "/var/www/html"
ProxyPass/http://localhost:3006
ProxyPassReverse/http://localhost:3006
</VirtualHost>
résout avec bien sinatra pour GETS, par exemple
wiki.domain.com/Home
mais échoue sur sinatra rediriger
# expected
wiki.domain.com/Home
# actual
wiki.domain.com:3006/Home
et voici l'action Sinatra (source: https://github.com/github/gollum/blob/master/lib/gollum/frontend/app.rb)
post '/edit/*' do
name = params[:splat].first
wiki = Gollum::Wiki.new(settings.gollum_path)
page = wiki.page(name)
format = params[:format].intern
name = params[:rename] if params[:rename]
wiki.update_page(page, name, format, params[:content], commit_message)
redirect "/#{CGI.escape(Gollum::Page.cname(name))}"
end