python - 来自其他域的 Django 重定向给出了“找不到页面”错误
问题描述
单击指向我的 Django 网站的 url 时,我收到一个 Page Not Found 错误。当我查看 DEBUG=True 的错误时,我发现错误消息中显示的“当前路径”与实际 url 不同。
例如,查看linkedin 上的共享文章:https ://www.linkedin.com/company/huvepharma-nv/ 。单击第一篇文章时,我被重定向到我的 Django 网站:https ://huvepharma.com/news/article/how-butyrate-produce-bacteria-can-support-food-safety/ 。这给了我一个 Page Not Found 错误,说当前路径是company/huvepharma-nv/,这是 LinkedIn 网站上的路径。
我怎样才能解决这个问题?
我在过去添加了以下修复,但现在我得到了 DEBUG=False 的 ERR_TOO_MANY_REDIRECTS。因此,快速修复也不再起作用。
def handler404(request, exception, template_name='errorhandlers/handler404.html', *args, **kwargs):
if request.META.get('HTTP_SEC_FETCH_SITE') == 'cross-site':
return redirect(request.path)
response = render_to_response(template_name)
response.status_code = 404
return response
Apache2 配置:
端口 80:
<VirtualHost *:80>
ServerAdmin frederik@adbuddy.be
ServerName huvepharma.com
ServerAlias www.huvepharma.com
ErrorLog "||/usr/bin/rotatelogs /home/ubuntu/websites/huvepharma/logs/error/error-%Y-%m-%d.log 86400"
CustomLog "||/usr/bin/rotatelogs /home/ubuntu/websites/huvepharma/logs/access/access-%Y-%m-%d.log 86400" combined
Alias /static /home/ubuntu/websites/huvepharma/static
<Directory /home/ubuntu/websites/huvepharma/static>
Require all granted
</Directory>
Alias /media /home/ubuntu/websites/huvepharma/media
<Directory /home/ubuntu/websites/huvepharma/media>
Require all granted
</Directory>
#WSGIDaemonProcess huvepharma.com python-home=/home/ubuntu/websites/huvepharma/venv python-path=/home/ubuntu/websites/huvepharma
#WSGIProcessGroup huvepharma.com
#WSGIScriptAlias / /home/ubuntu/websites/huvepharma/huvepharma/wsgi.py process-group=huvepharma.com
<Directory /home/ubuntu/websites/huvepharma/huvepharma>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =huvepharma.com [OR]
RewriteCond %{SERVER_NAME} =www.huvepharma.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
端口 443:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin frederik@adbuddy.be
ServerName huvepharma.com
ServerAlias www.huvepharma.com
ErrorLog "||/usr/bin/rotatelogs /home/ubuntu/websites/huvepharma/logs/error/error-%Y-%m-%d.log 86400"
CustomLog "||/usr/bin/rotatelogs /home/ubuntu/websites/huvepharma/logs/access/access-%Y-%m-%d.log 86400" combined
Alias /static /home/ubuntu/websites/huvepharma/static
<Directory /home/ubuntu/websites/huvepharma/static>
Require all granted
</Directory>
Alias /media /home/ubuntu/websites/huvepharma/media
<Directory /home/ubuntu/websites/huvepharma/media>
Require all granted
</Directory>
WSGIDaemonProcess huvepharma.com python-home=/home/ubuntu/websites/huvepharma/venv python-path=/home/ubuntu/websites/huvepharma
WSGIProcessGroup huvepharma.com
WSGIScriptAlias / /home/ubuntu/websites/huvepharma/huvepharma/wsgi.py process-group=huvepharma.com
<Directory /home/ubuntu/websites/huvepharma/huvepharma>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/huvepharma.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/huvepharma.com/privkey.pem
</VirtualHost>
</IfModule>