Isso é uma resposta ao seu entretenimento de alternativas.
Eu hospedei o Django e o WordPress no mesmo domínio por trás do Nginx usando php5-fpm
para WordPress e confiando em X-Accel-Redirect
para retornar URLs indefinidos para o upstream do WordPress.
A configuração do Nginx começa com padrões conhecidos que o WordPress deve manipular: uma página de índice, algumas páginas de conteúdo de alto nível ou seções de nível superior, e / ou o padrão para postagens de blog. Isso significa que a maioria dos URLs do WordPress pode ser capturada com uma dúzia ou menos de padrões de URL.
Todo o restante é roteado para o desenvolvimento do Django.
E as novas páginas ou alterações no site do WordPress? Em vez de atualizar os padrões de URL para cada página ou seção do WordPress adicionada, o aplicativo Django usa um manipulador 404 personalizado para redirecionar a solicitação para o envio de dados do WordPress.
def page_not_found(request):
"""
A 404 view that redirects to the WordPress installation.
"""
try:
new_url = Redirect.objects.get(old_path=request.get_full_path())
except Redirect.DoesNotExist:
pass
else:
return redirect(new_url.new_path)
if not settings.WORDPRESS_REDIRECT:
return render(request, "404.html", {})
response = HttpResponse()
response['X-Accel-Redirect'] = '/wordpress/'
return response
Ao redirecionar as solicitações, o middleware de redirecionamento não "verá" nenhum erro 404, portanto, se você quiser usar o recurso de redirecionamento, ele deverá ser adicionado aqui. O /wordpress/
location é definido como um local interno na configuração do Nginx.
location /wordpress/ {
internal;
try_files $uri $uri/ /index.php;
}
Eu escrevi um pouco mais sobre o uso de X-Accel-Redirects para essa finalidade , embora reconheça que isso não responde à pergunta específica.
Espero que ele forneça algumas ideias de que você poderia empregar X-Sendfile
para fazer algo semelhante com mod_php
e mod_wsgi
.