·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

求Nginx高手或伪静态高手

357 2
发表于 2021-1-30 17:39:00 | 查看全部 阅读模式

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
需要将类似adb.com/forum.php?mid=68057498088i0uFzBG/的链接跳转到404,或者伪静态处理,其中mid=后面的数字或数字与字母组合是随机的
我要说一句 收起回复

评论2

Discuz智能体Lv.8 发表于 2025-3-20 05:43:33 | 查看全部
要实现将类似 `adb.com/forum.php?mid=68057498088i0uFzBG/` 的链接跳转到 404 页面,或者通过伪静态处理,你可以通过 Nginx 的 `rewrite` 规则来实现。以下是一个示例配置:

### 1. 跳转到 404 页面
如果你希望将所有包含 `mid=` 参数的链接直接跳转到 404 页面,可以在 Nginx 配置文件中添加以下规则:

  1. location /forum.php {
  2.     if ($arg_mid) {
  3.         return 404;
  4.     }
  5.     # 其他处理逻辑
  6. }
复制代码


这个规则会检查 `forum.php` 请求中是否包含 `mid` 参数。如果包含,则直接返回 404 状态码。

### 2. 伪静态处理
如果你希望通过伪静态的方式处理这些链接,可以将 `mid` 参数重写为一个固定的路径或直接跳转到 404 页面。以下是一个示例:

  1. location /forum.php {
  2.     if ($arg_mid) {
  3.         rewrite ^/forum\.php$ /404.html last;
  4.     }
  5.     # 其他处理逻辑
  6. }
复制代码


这个规则会将所有包含 `mid` 参数的 `forum.php` 请求重写到 `404.html` 页面。

### 3. 更复杂的伪静态处理
如果你希望根据 `mid` 参数的值进行更复杂的处理,可以使用正则表达式来匹配 `mid` 参数的值,并根据不同的值进行不同的处理。例如:

  1. location /forum.php {
  2.     if ($arg_mid ~* "^[0-9a-zA-Z]+$") {
  3.         return 404;
  4.     }
  5.     # 其他处理逻辑
  6. }
复制代码


这个规则会检查 `mid` 参数是否由数字和字母组成,如果是,则返回 404 状态码。

### 4. 完整的 Nginx 配置示例
以下是一个完整的 Nginx 配置示例,结合了上述规则:

  1. server {
  2.     listen 80;
  3.     server_name adb.com;

  4.     location /forum.php {
  5.         if ($arg_mid) {
  6.             return 404;
  7.         }
  8.         # 其他处理逻辑
  9.     }

  10.     location / {
  11.         # 其他处理逻辑
  12.     }

  13.     error_page 404 /404.html;
  14.     location = /404.html {
  15.         internal;
  16.     }
  17. }
复制代码


### 5. 注意事项
- 确保在修改 Nginx 配置文件后,重新加载或重启 Nginx 服务以使配置生效。
- 如果你使用了缓存(如 FastCGI 缓存),可能需要清除缓存以确保新的规则生效。

通过以上配置,你可以实现将包含 `mid` 参数的链接跳转到 404 页面或进行伪静态处理。如果你有更复杂的需求,可以根据实际情况调整规则。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-21 06:50:25 | 查看全部
要实现将类似 `adb.com/forum.php?mid=68057498088i0uFzBG/` 的链接跳转到 404 页面,或者通过伪静态处理,你可以通过 Nginx 的配置来实现。以下是具体的解决方案:

### 1. 使用 Nginx 的 `rewrite` 规则跳转到 404 页面

你可以在 Nginx 的配置文件中添加一个 `rewrite` 规则,将所有包含 `mid=` 参数的请求重定向到 404 页面。

  1. location /forum.php {
  2.     if ($arg_mid) {
  3.         return 404;
  4.     }
  5.     # 其他处理逻辑
  6. }
复制代码


这个配置的意思是:如果请求的 URL 中包含 `mid=` 参数,Nginx 会直接返回 404 状态码。

### 2. 使用 Nginx 的 `rewrite` 规则进行伪静态处理

如果你希望将这些链接进行伪静态处理,而不是直接跳转到 404 页面,你可以使用 `rewrite` 规则将 `mid=` 参数重写为其他形式。

例如,你可以将 `adb.com/forum.php?mid=68057498088i0uFzBG/` 重写为 `adb.com/forum/68057498088i0uFzBG/`:

  1. location /forum.php {
  2.     if ($arg_mid) {
  3.         rewrite ^/forum.php?mid=([0-9a-zA-Z]+)$ /forum/$1/ permanent;
  4.     }
  5.     # 其他处理逻辑
  6. }
复制代码


这个配置的意思是:如果请求的 URL 中包含 `mid=` 参数,Nginx 会将 `mid=` 后面的值提取出来,并将其重写为 `/forum/值/` 的形式。

### 3. 使用 Nginx 的 `try_files` 指令

如果你希望将这些链接重定向到一个特定的 404 页面,而不是直接返回 404 状态码,你可以使用 `try_files` 指令:

  1. location /forum.php {
  2.     if ($arg_mid) {
  3.         try_files $uri /404.html =404;
  4.     }
  5.     # 其他处理逻辑
  6. }
复制代码


这个配置的意思是:如果请求的 URL 中包含 `mid=` 参数,Nginx 会尝试查找 `/404.html` 文件并返回它,如果找不到则返回 404 状态码。

### 4. 使用 Nginx 的 `error_page` 指令

你还可以使用 `error_page` 指令来定义自定义的 404 页面:

  1. error_page 404 /404.html;

  2. location /forum.php {
  3.     if ($arg_mid) {
  4.         return 404;
  5.     }
  6.     # 其他处理逻辑
  7. }
复制代码


这个配置的意思是:当 Nginx 返回 404 状态码时,会显示 `/404.html` 页面。

### 5. 综合示例

以下是一个综合示例,结合了上述几种方法:

  1. error_page 404 /404.html;

  2. location /forum.php {
  3.     if ($arg_mid) {
  4.         rewrite ^/forum.php?mid=([0-9a-zA-Z]+)$ /forum/$1/ permanent;
  5.         # 或者直接返回 404
  6.         # return 404;
  7.     }
  8.     # 其他处理逻辑
  9. }

  10. location /404.html {
  11.     internal;
  12. }
复制代码


这个配置的意思是:
- 如果请求的 URL 中包含 `mid=` 参数,Nginx 会将其重写为 `/forum/值/` 的形式。
- 如果直接返回 404 状态码,Nginx 会显示 `/404.html` 页面。

### 注意事项
- 在修改 Nginx 配置文件后,记得使用 `nginx -t` 测试配置文件是否正确,然后使用 `nginx -s reload` 重新加载配置。
- 如果你使用的是 Discuz! 程序,确保这些规则不会影响到其他正常的 URL 路由。

希望这些方法能帮助你解决问题!如果有其他问题,欢迎继续提问。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

图文热点
关闭

站长推荐上一条 /1 下一条

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:3.137.202.126,GMT+8, 2025-4-1 04:21 , Processed in 1.079081 second(s), 78 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表