在URL中没有额外组件的情况下配置Django/Apache2/mod_wsgi的问题
问题描述:
我想要完成的是让Apache在mysite.com/上提供所有内容,并让Django处理mydomain.com/signup
和mydomain.com/login
下的所有内容。在URL中没有额外组件的情况下配置Django/Apache2/mod_wsgi的问题
问题是,现在用户必须浏览到mydomain.com/mysite/signup
或mydomain.com/mysite/login
工作的东西。我想摆脱网址的mysite部分。
我创建了
django-admin startproject signup mysite
cd mysite
django-admin startapp login
一个项目,我结束了与该目录结构。
mysite
├── login
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── manage.py
└── signup
├── __init__.py
├── settings.py
├── urls.py
├── views.py
└── wsgi.py
,我有以下URL模式在注册/ urls.py
urlpatterns = [
url(r'^signup/', views.index, name='index'),
url(r'^login/', include('login.urls')),
url(r'^admin/', admin.site.urls),
]
我有阿帕奇mod_wsgi的安装和工作在我的虚拟主机文件有这个WSGIScriptAlias。
WSGIScriptAlias /mysite /usr/local/www/wsgi-scripts/mysite/signup/wsgi.py process-group=mysite.com
当用户进入任何mydomain.com/mysite/signup
或mydomain.com/mysite/login
一切正常。
我想要做的是摆脱上述URL的'mysite'
部分,因此用户只需浏览到mydomain.com/signup
或mydomain.com/login
。
我已经试过
WSGIScriptAlias /signup /usr/local/www/wsgi-scripts/mysite/signup/wsgi.py process-group=mysite.com
WSGIScriptAlias /login /usr/local/www/wsgi-scripts/mysite/signup/wsgi.py process-group=mysite.com
但由于Apache或mod_wsgi的剥去“注册”或它到达之前的Django Django的,并认为只是用户的登录'部分正在寻找不工作为'/'。
有什么建议吗?
谢谢
答
尝试使用:
WSGIScriptAlias /signup /usr/local/www/wsgi-scripts/mysite/signup/wsgi.py/signup process-group=mysite.com application-group=%{GLOBAL}
WSGIScriptAlias /login /usr/local/www/wsgi-scripts/mysite/signup/wsgi.py/login process-group=mysite.com application-group=%{GLOBAL}
注挂载点是如何wsgi.py
后加入。此外还添加了application-group
选项,以确保您只能在此过程中获得一个Django应用程序实例。
另一种方式是让任何静态文件由Apache处理,其他所有事情由WSGI应用程序处理。朝节的终结“阿帕奇别名指令”是如何做到这一点记载:
正是我在找什么!像魅力一样工作。谢谢 – JJF