これはApacheの問題かSinatraの問題かどうかは、基本的に単一のサーバー上で実行される小さなアプリケーションが多数あり、組み込みのwebrickインスタンスだけで展開し、Apacheを使用して、それらの要求をサブドメイン別に適切なポートにルーティングします。私はGitパーシスタンスレイヤーを持つsinatraアプリであるgollumを使用していますが、(アクションの編集後に)リダイレクトすると予期しないアプリケーションのルーティングが発生しています。私はSinatraに起動オプションを渡すか、アプリケーションの仮想ホスト宣言で書き換えルールを設定することでこれを解決できるかどうかはわかりません。あなたの答えには、どのオプションが最も良いと思うか、どのように達成されるかの例が含まれています。 おかげで、これはSinatraの設定の問題か、Apacheの設定の問題ですか?
# apache virtualhost declaration
<VirtualHost *:80>
ServerName wiki.domain.com
DocumentRoot "/var/www/html"
ProxyPass/http://localhost:3006
ProxyPassReverse/http://localhost:3006
</VirtualHost>
が
wiki.domain.com/Home
例えば、GETをためシナトラ罰金を解決しますが、シナトラに
# expected
wiki.domain.com/Home
# actual
wiki.domain.com:3006/Home
をリダイレクトし、ここではシナトラのアクションは、(ソース: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