デプロイしようとしているDjangoアプリがあります。Apache設定は、次のURLを使用してwsgiアプリにアクセスする方法で構成されます。
sitename.com/~amartino
つまり、public_htmlディレクトリにwsgi.pyファイルしかありません。次のURLからDjangoサイトにアクセスします。
sitename.com/~amartino/expofit
それがurls.pyで設定されている方法です。
urlpatterns = patterns('',
('/param_select/$',session_check(param_select)),
('registration/$',registration),
('result_show/(\d+)',session_check(result_show)),
('^expofit/$',media_clean(start)),
('result_pick/$',session_check(result_pick)),
('mail_report/$',session_check(mail_report)),
('notification/$',session_check(notification)),
ただし、私が得ている問題(開発では表示されませんでした:))は、views.pyでハードコードされたHttpResponseRedirectを使用していることです。
...
#If all fields are valid
return HttpResponseRedirect('/expofit/param_select/')
#else reload page
...
本番環境ではサイトがURLのルートに配置されないため、上部が次のHttpResponseRedirect
ように変換されるため、エラーが発生します。
sitename.com/expofit/param_select/
これはApacheによって認識されません。
スラッシュを削除して、次のようにすることができると思います。
return HttpResponseRedirect('expofit/param_select/')
その結果、次のようになります。
sitename.com/~amartino/expofit/registration/expofit/param_select/
しかし、それは正しい方法ではないようです。すぐに巨大なURLになってしまうからです。ここの設計/構成の欠陥はどこにありますか?