Uso:
WSGIScriptAliasMatch ^/(admin|myapp) /some/path/django.wsgi/$1
Isso deve preservar o SCRIPT_NAME como a raiz do site correspondente, de forma que o URL ainda funcione para as entradas que começam com admin e myapp.
Eu tenho um aplicativo do Django que lida com "/ admin /" e "/ myapp /". Todas as outras solicitações devem ser tratadas pelo Apache.
Eu tentei usar o LocationMatch, mas eu teria que escrever um regex negativo. Eu tentei WSGIScriptAlias com o prefixo / admin /, mas o wsgi_handler recebe a requisição com o corte / admin / part.
Existe uma maneira mais limpa de fazer o mod_wsgi apenas lidar com certas solicitações?
Uso:
WSGIScriptAliasMatch ^/(admin|myapp) /some/path/django.wsgi/$1
Isso deve preservar o SCRIPT_NAME como a raiz do site correspondente, de forma que o URL ainda funcione para as entradas que começam com admin e myapp.
Usar apenas um alias na configuração do meu apache sempre funcionou para mim:
Alias /media /sites/mysite.org/www/media
<Location /media>
Order allow,deny
Allow from all
</Location>
Ele é processado antes de o mod_wsgi se aproximar dele.
Do livro de django link :
Se você implantar o Django em um subdiretório - ou seja, em algum lugar mais profundo que o “/” - o Django não cortará o prefixo de URL dos seus padrões de URL. Então, se sua configuração do Apache se parece com:
<Location "/mysite/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonDebug On
</Location>
Todos os seus padrões de URL precisarão começar com "/ mysite /". Por esse motivo, geralmente recomendamos a implantação do Django na raiz do seu domínio ou host virtual.
Tags apache-2.2 mod-wsgi