全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 481|回复: 1

.htaccess转 nginx 为什么很多连接404

[复制链接]
发表于 2023-8-31 17:33:29 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
发表于 2023-8-31 17:39:44 | 显示全部楼层
从您提供的转换后的Nginx配置来看,似乎没有涵盖到 Apache 配置中的所有规则。尤其是 Apache 配置中的以下部分:
  1. RewriteCond %{REQUEST_FILENAME} -d [OR]
  2. RewriteCond %{REQUEST_FILENAME} -f
  3. RewriteRule ^ ^$1 [N]

  4. RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
  5. RewriteRule ^(.*)$ public/$1

  6. RewriteCond %{REQUEST_FILENAME} !-d
  7. RewriteCond %{REQUEST_FILENAME} !-f
  8. RewriteRule ^ server.php
复制代码


您在转换后的 Nginx 配置中没有等效地处理这些规则,这可能导致一些页面出现 404 错误。您需要将这些规则翻译到 Nginx 配置中。以下是一个可能的转换:

  1. location / {
  2.     if (-d $request_filename) {
  3.         rewrite ^ /$request_uri/ last;
  4.     }
  5.     if (-f $request_filename) {
  6.         rewrite ^ /$request_uri last;
  7.     }

  8.     rewrite (\.\w+$) /public/$1;

  9.     if (!-e $request_filename) {
  10.         rewrite ^ /server.php last;
  11.     }
  12. }
复制代码


请注意,Nginx 中的 rewrite 指令和 Apache 中的 RewriteRule 有一些语法和行为上的差异,因此转换时需要注意细节。同时,建议在 Nginx 中使用 try_files 指令,以更好地处理文件和目录的存在性检查。

最终,您需要确保所有规则都正确地转换到 Nginx 配置中,以确保页面正常访问而不出现 404 错误。如果问题仍然存在,您可能需要进一步检查 Nginx 错误日志以获取更多信息。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2026-4-20 04:13 , Processed in 0.065002 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表