I am trying to run Django inside WordPress like WordPress at main url www.wptesting.com and Django at suburl www.wptesting.com/django .
Django main root url Is working fine at www.wptesting.com/django but its suburl e.g., admin is not working as it should be www.wptesting.com/django/admin . However, whenever I tried to request admin url it goes converts into www.wptesting.comhttp%3a//wptesting.com/django/admin
I am running WordPress and Django with Apache
and mod_wsgi
, my conf file for apache is as follows :
<VirtualHost *:80>
WSGIScriptAlias /django /path_to_project/wsgi.py
ServerName wptesting.com
ServerAlias www.wptesting.com
DocumentRoot /var/www/html/wordpress
<Directory /var/www/html/wordpress/>
AllowOverride All
Order allow,deny
allow from all
# Options Indexes FollowSymLinks
# Require all granted
</Directory>
<Directory /path_to_project/>
Options Indexes FollowSymLinks
Require all granted
</Directory>
</VirtualHost>
I have asked one question earlier about configuring Django from subdirectory of WordPress with Apache and wsgi -> you can see the question here
Also If I tried to access any url which is not in Django project then it is giving the standard 404 not found error but when I try to access any valid url like admin it is giving the error mention above.
Edited :
My Urls.py file :
from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.views.generic import TemplateView
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'dev_redis.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^$',TemplateView.as_view(template_name='index.html')),
url(r'^admin/', include(admin.site.urls)),
url(r'^cache/', 'redis_app.views.redisTest'),
)
That’s the old format for urls.py. The current is this:
This is actually the file that is made when you make a new django project.
Firstly, Django and apache run as backend webservers. Therefore, you can solve this by running apache and Django on two separate ports.
Then you can redirect from the current Django site to the new site using
HttpResponseRedirect
.