codeigniter - nginx ssl 不工作 - 404 找不到文件

标签 codeigniter ssl nginx fastcgi

环境:

Linux 服务器 - ubuntu 网络服务器——nginx 脚本 - php5, fastcgi 端口 - 默认 - 80/443 PHP 框架 - codeigniter

我有一个用 codeigniter 制作的网站,在 http 下工作得很好,我已经设置了一个 ssl 证书,但我无法让后续页面工作,主页在 https 下工作正常。

仅供引用:该网站是用 url 重写制作的,我不知道 Nginx 或 FPM 或 Codeigniter 是否处理重写,但我们的工作 url 为 http://domain.com/contact

在 Nginx 日志文件中,我看到 404 页面未找到错误。如果我在主文件夹下创建一个目录作为 test 并创建一个文件作为 hello.php,我可以通过 HTTPS 和 HTTP 查看它,但其他链接不起作用。

我保证——

  1. 我在 http、https 中指向正确的文件夹
  2. key 文件没有密码
  3. 我已经包含了链/根证书
  4. 我之间没有防火墙/代理/缓存服务器

我不知道 nginx/codeigniter/php-fpm 中的哪一个正在处理 url 重写,我确定错误是由于 url_rewrite 在 https/ssl 模式下不工作。

请帮忙

最佳答案

您应该发布完整的 nginx conf 文件。否则很难判断发生了什么。

如果 url 重写是通过 http 重定向,并且您希望将您的站点移动到 https,那么您应该执行 HTTP 301 永久移动。

server {
    listen         80;
    return 301 https://$host$request_uri;
}

关于codeigniter - nginx ssl 不工作 - 404 找不到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26236855/

相关文章:

php - 如何简化 CI 中 View 的冗余调用

ubuntu - Windows 10 WSL(Linux的Windows子系统)上的Ubuntu:无法与WGET和CURL建立SSL连接

apache - EC2 中的 http 到 https AWS 中的 apache2

wordpress - 如何使用多个站点将非 www 重定向到 www? (Nginx 和 Varnish )

Nginx - 更改欢迎页面

php - 如何将列数据转换为行数据

php - 如何在 Codeigniter 中每行显示两个表列?

mysql - Codeigniter - Active record Where Join column ambiguous

apache - 从 SSL 中排除特定目录

amazon-web-services - 在 AWS Linux 2 上运行的 NGINX 配置中访问 Elastic Beanstalk 环境属性