1

如何制作一个配置为从根 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.

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

感谢您的回答和提示。

4

1 回答 1

0

格雷厄姆·邓普尔顿的道具。他在此问答中回答了另一个完全相同的问题:Django (wsgi) 和 Wordpress 在 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>
于 2015-11-20T06:40:04.077 回答