小编Dav*_*ull的帖子

我可以配置 apache/mod_wsgi 以便别名 URL 路径在到达我的 Django 应用程序之前不会被剥离吗?

我正在尝试将 Apache 配置为托管 Django 网络服务和 PHP 网站。

具有该模式的所有 URLwww.mysite.com/api都应定向到 Django 服务。所有其他 URL(例如www.mysite.com)都应该指向 PHP 网站。

我的虚拟主机配置如下所示:

...
WSGIScriptAlias /api /var/www/mysite.com/apache/django.wsgi
<Directory /var/www/mysite.com/apache>
    Order allow,deny
    Allow from all
</Directory>

Alias / /var/www/mysite.com/apache/php/
<Directory /var/www/mysite.com/apache/php>
    Options Indexes FollowSymLinks
    AllowOverride All
    Order Deny,Allow
    Allow from all
</Directory>
...
Run Code Online (Sandbox Code Playgroud)

这会将每个请求定向到正确的处理程序。但是,我的 Django urls.py看起来像这样:

...
api_patterns = patterns('',
    url(r'^api/1.0/$', views.api_root),
    url(r'^api/1.0/oauth/', 
        include('oauth2_provider.urls', 
                namespace='oauth2_provider')),
...
Run Code Online (Sandbox Code Playgroud)

这无法匹配任何 URL,因为它期望它们以api. 当然,这个前缀在它到达这里之前被剥离(当请求到达这里时,它们是格式1.0/oauth等)。

有没有办法将完整的 URL 传递给 Django?

解决方案

mod_wsgi 的作者 Graham Dumpleton 提出了几种解决此问题的方法,这两种方法都有效(请参阅下面已接受的答案)。

我选择了他在 …

django mod-wsgi apache-2.2

2
推荐指数
1
解决办法
3593
查看次数

标签 统计

apache-2.2 ×1

django ×1

mod-wsgi ×1