nginx - 页面未在 HTTPS 中正确重定向
问题描述
我在一个centos7上使用nginx服务器和Prestashop 1.7.4.4,也安装了php5.6。我将nginx配置为服务3个网站,一个在wordpress中,一个是Tomcat的代理,一个是prestashop。
没有 HTTPS 一切都很好。我为证书安装 certbot,然后运行它。它完成了与 3 个站点文件配置有关的工作。prestashop 旁边的所有站点现在都可以正常工作,如果尝试使用 HTTP 连接,则会重定向到 HTTPS。
我通过这样的命令行安装 prestashop:
php index_cli.php --name=name --country=it --domain=www.namedoamin.com --db_server=127.0.0.1 --db_name=dbname --db_user=dbuser --db_password=password
没有 https 它可以正常工作,但是一旦我安装了证书并将流量从 http 重定向到 https,浏览器就会说臭名昭著:
The page isn’t redirecting properly
有很多关于这个问题的信息,但没有一个能帮助我。这是来自 nginx 的块:
server {
server_name www.name.com;
location / {
root /var/www/html/website.com;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ \.php$ {
root /var/www/html/website.com;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
include /etc/nginx/fastcgi_params;
}
listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/www.namesite.com/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/www.namesite.com/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
server {
if ($host = www.namesite.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
server_name www.namesite.com;
listen 80;
return 404; # managed by Certbot
}
如果我进入管理部分,它可以在 HTTPS 中工作,但如果我尝试进入设置/常规,它会给我 404 未找到,非常奇怪!我不知道该怎么办了我很绝望,我在发布之前尝试了我在互联网上红色的所有技巧。
更新:只要我在几个小时后发布,我就会找到解决方法。这里的问题是由于我不知道的任何原因我无法访问设置/常规。所以我进入数据库,表 pl_configuration 并将调用的字段更改为PS_SSL_ENABLED_EVERYWHERE
truePS_SSL_ENABLED
解决方案
起初我遇到了同样的问题,但后来通过在每个页面上启用 ssl(首先启用 ssl,然后保存,然后在所有页面上启用 ssl)更改(在管理界面中)商店参数 > 常规,加上清除缓存,然后它工作得很好。
万一有帮助。
推荐阅读
- java - 什么是创建映射函数表以应用于 Java 中的每个查询参数的好方法
- excel - 在 Excel 中绘制条形图
- python - 如何抓取新闻内容并删除不相关的部分
- django - 如何在同一管理页面 Django 上添加多个模型对象
- scons - gem5 scons 构建失败,并显示“TypeError:参数应该是整数或类似字节的对象,而不是'str'”
- laravel - 在刀片 laravel 7 中显示“选择”元素的旧数据
- javascript - RxJs 使用主题来触发当前 observable 中的结果
- python - 使用散点图绘制数据集中的多个列
- python - 有没有办法从任何网站提取查询字符串?
- javascript - 在另一个脚本中使用 JS 返回