2016-06-07 7 views
0

Ich habe eine Django-basierte Site, die von Apache2 bedient wird. Mein virtualhost ist so konfiguriert, dass meine Domain (nennen Sie es beispiel.com) meine wsgi-Anwendung dient.Konfigurieren Sie Apache, um WSGI zu überschreiben

Ich möchte auch eine Wordpress-Website unter example.com/blog mit Apache dienen. Wie würde ich die Wordpress-Site unter/blog mit Apache bedienen? Momentan wird meine Anfrage von Django erfasst und ich bekomme eine 404, da/blog nicht in meinen Django-URLs enthalten ist.

Antwort

2

In dem Django docs (https://docs.djangoproject.com/en/1.9/howto/deployment/wsgi/modwsgi/) sie geben Sie folgendes Beispiel:

Alias /media/ /path/to/mysite.com/media/ 
Alias /static/ /path/to/mysite.com/static/ 

<Directory /path/to/mysite.com/static> 
Require all granted 
</Directory> 

<Directory /path/to/mysite.com/media> 
Require all granted 
</Directory> 

WSGIScriptAlias//path/to/mysite.com/mysite/wsgi.py 

<Directory /path/to/mysite.com/mysite> 
<Files wsgi.py> 
Require all granted 
</Files> 
</Directory> 

Diese für statische Dateien, aber funktionieren würde, für deinen Blog auch.

+0

Dies ist die richtige Antwort. Könntest du bitte die Zeilen einfügen, in denen du alias/static und/media verwendest, damit es etwas klarer ist? – grez

0

In Ihrem Apache conf diese Zeilen zu Ihrem Virtualhost hinzufügen:

Alias /blog /var/www/example.com/blog/ 
<Directory /var/www/example.com/blog> 
Require all granted 
</Directory> 
0

Ihr Problem ist, dass Sie die Blog-Referenz erst erkennen, wenn Sie sich im Django-URL-Router befinden. Obwohl Sie eine URL-Regel + Ansicht erstellen können, um eine Weiterleitung durchzuführen, erstellen Sie am einfachsten eine neue Subdomäne, z. blog.mydomain.com und konfigurieren Sie Apache für die zusätzliche Site. Ich mache das für alle meine Django-Seiten und es funktioniert gut.