如何解决Django和Apache WSGIScriptAlias无法处理深层URL
有关SO如何在Apache上部署Django的教程,指南甚至其他文章似乎都假设默认情况下,在使用WSGIScriptAlias
指令时,该别名下的所有深层链接也都由脚本处理。 (通常通过访问“ /”和/admin
页进行演示)。对我来说似乎并非如此。我的Django应用程序处理了对api.mydomain.com/v1/
根目录的请求,但是api.mydomain.com/v1/users/
(带有或不带有斜杠)生成Apache的404“未找到。在此服务器上找不到所请求的URL。”消息。
我是否错过了可以处理这些深层链接的设置?例如,对于SPA,我习惯于将所有请求重定向到前端控制器。
这是我的Apache配置:
<VirtualHost *:443>
ServerName api.mydomain.com
WSGIPassAuthorization On
WSGIScriptAlias /v1/ /var/www/django_app/django_app/wsgi.py
SSLCertificateFile /etc/letsencrypt/live/api.mydomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/api.mydomain.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
解决方法
从WSGIScriptAlias
指令的URL路径中删除斜杠:
WSGIScriptAlias /v1 /var/www/django_app/django_app/wsgi.py
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。