【问题标题】:Reconfiguring Apache to serve website root from new php source and specific sub-urls from old django site重新配置 Apache 以从新的 php 源和旧 django 站点的特定子 URL 提供网站根目录
【发布时间】:2014-11-07 11:26:56
【问题描述】:

我如何创建一个配置为从根 url 提供服务的 django 网站(在 apache/mod_wsgi/django 设置中),只为特定的子 url 而不是根 url 服务?根 url 应从新源 (php) 提供。只需最少的重新配置即可实现所有这些。

目前压缩后的虚拟主机配置如下所示

<VirtualHost *:80>
    ServerAdmin admin@mysite.com
    ServerName mysite.com

    # mappings to django
    WSGIScriptAlias / /opt/mysite/mysite.wsgi
    <Directory /opt/mysite>
        Order allow,deny
        Allow from all
    </Directory>

    # mappings to wordpress 
    Alias /wp/ /var/www/mysiteWP/
    <Location "/var/www/mysiteWP/">
            Options -Indexes
    </Location>
    Alias /show/ /var/www/mysiteWP/
    Alias /collection/ /var/www/mysiteWP/
</VirtualHost>

如您所见,django 和 php(wordpress) 并排运行。 Wordpress 仅提供 mysite.com/show/ 和 mysite.com/collection/。 Django 为其余部分提供服务,包括根 URL mysite.com。此配置有效。

我现在想要做的是,我想让 wordpress 提供所有内容,除了一些应该由 django 提供的特定 url。例如。 django 应该只为mysite.com/shop/ 和mysite.com/news/ 提供服务,但不包括mysite.com。

如何通过最少的重新配置来做到这一点?

感谢您的回答和提示。

【问题讨论】:

  • 我做了类似的事情,但我的前端是 nginx。 nginx.conf 中 url 路由的配置类似于 django 中 url 路由的方式,从上到下。不是答案,而是:查看 nginx 作为您的前端。它为混合带来了理智。
  • @Beltiras:谢谢。如果我找不到任何解决方案,我会深入研究。 Django 需要有一些方法来做到这一点。
  • @Creech:你找到解决方案了吗?如果是这样,那么请将其发布为您自己问题的答案。谢谢。

标签: django apache url-routing wsgi mount-point


【解决方案1】:

支持Graham Dumpleton。他在此问答中回答了另一个完全相同的问题:Django (wsgi) and Wordpress coexisting in Apache virtualhost。

简而言之,在配置 Apache 后,从 php 提供根 url,将特定子 url 路由到 django 的解决方案,但让它认为它的挂载点仍然是根,是WSGIScriptAliasMatch。 对于这个(示例)问题,对 apache 虚拟主机配置的简单添加是这样的:

WSGIScriptAliasMatch ^(/(shop|news)) /opt/mysite/mysite.wsgi$1

这个例子的整个虚拟主机配置是:

<VirtualHost *:80>
    ServerAdmin admin@mysite.com
    ServerName mysite.com

    # mappings to django
    WSGIScriptAliasMatch ^(/(shop|news)) /opt/mysite/mysite.wsgi$1
    <Directory /opt/mysite>
        Order allow,deny
        Allow from all
    </Directory>

    # mappings to wordpress 
    DocumentRoot /var/www/mysiteWP/
    <Location "/var/www/mysiteWP/">
            Options -Indexes
    </Location>
</VirtualHost>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 2015-04-17
    • 2019-08-02
    • 1970-01-01
    • 2020-05-02
    • 2017-09-25
    • 1970-01-01
    相关资源
    最近更新 更多