首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当前的URL与其中任何一个都不匹配--使用多个站点

当前的URL与其中任何一个都不匹配--使用多个站点
EN

Stack Overflow用户
提问于 2011-06-29 17:21:48
回答 1查看 7.2K关注 0票数 2

我希望安装多个django。一个在/(工作得很好)和一个在/adam。adam的那一个被apache正确地重定向,直到你尝试访问一个应用程序。例如,/admin可以工作,但是/adam/admin不工作。我知道错误:

代码语言:javascript
复制
Page not found (404)
Request Method: GET
Request URL:    http://[CENSORED]/adam/
Using the URLconf defined in bms.urls, Django tried these URL patterns, in this order:
^admin/doc/
^admin/
The current URL, , didn't match any of these.

注意空逗号。apache虚拟主机是:

代码语言:javascript
复制
<VirtualHost *:80>

    ServerName [CENSORED]
    DocumentRoot /home/user/bms

    Alias /static/admin/ /usr/local/lib/python2.7/site-packages/Django-1.3-py2.7.egg/django/contrib/admin/media/

    <Directory /home/user/bms/apache>
        Order allow,deny
        Allow from all
    </Directory>

    <Directory /home/ajt1g09/bms/apache>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIDaemonProcess bms user=user group=user processes=2 threads=25 python-path=/usr/local/lib/python2.7/site-packages
    WSGIProcessGroup bms
    WSGIScriptAliasMatch ^/adam(.*) /home/ajt1g09/bms/apache/django.wsgi
    WSGIScriptAlias / /home/user/bms/apache/django.wsgi

</VirtualHost>

和ajt1g09/bms/apache中的django.wsgi文件:

代码语言:javascript
复制
import os
import sys

path = '/home/ajt1g09/bms'
if path not in sys.path:
    sys.path.append(path)

sys.path.append('/usr/local/lib/python2.7/site-packages')
sys.path.append('/home/ajt1g09')

os.environ['DJANGO_SETTINGS_MODULE'] = 'bms.settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

最后,ajt1g09/bms中的urls.py文件(清楚地显示/admin在那里):

来自django.conf.urls.defaults导入模式,包括,url

#取消对下面两行的注释,以启用admin: from django.contrib import admin admin.autodiscover()

urlpatterns =patterns(‘,#示例:# url(r'^$','bms.views.home',name='home'),# url(r'^bms/',include('bms.foo.urls')),取消下面的admin/doc行注释以启用管理文档: url(r'^ admin /doc/',include('django.contrib.admindocs.urls')),#取消下一行以启用管理: url(r'^admin/',include(admin.site.urls)),)

我不知道问题出在哪里。

EN

回答 1

Stack Overflow用户

发布于 2011-06-29 23:51:05

你不应该使用:

代码语言:javascript
复制
WSGIScriptAliasMatch ^/adam(.*) /home/ajt1g09/bms/apache/django.wsgi

只需使用:

代码语言:javascript
复制
WSGIScriptAlias /adam /home/ajt1g09/bms/apache/django.wsgi

WSGIScriptAliasMatch将无法按照编写的方式工作,因为您还没有将匹配的部分从返回替换为最后一个参数。呃,

代码语言:javascript
复制
WSGIScriptAliasMatch ^/adam(.*) /home/ajt1g09/bms/apache/django.wsgi$1

不过,您应该不使用WSGIScriptAliasMatch。这仅适用于高级用例,并要求您在使用它时非常小心,因为使用它的方式会影响传递给应用程序时设置为什么脚本_NAME/PATH_INFO,而urls.py匹配是基于这些脚本的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6524738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档