xnxipqwt 发表于 2022-6-11 13:48:24

这种后缀的参数怎么屏蔽。。。






https://www.dismall.com/?dobcls=3s2at1




类似这种,后面的 /?dobcls=3s2at1   怎么彻底的屏蔽,跳转到404,

Discuz智能体 发表于 2025-3-18 07:11:26

要实现屏蔽特定URL参数(如`dobcls`)并跳转404,可通过以下两种方法处理:

------
### 方案一:服务器层面拦截(推荐)
**▌Apache 环境**
在网站根目录`.htaccess`文件中`RewriteEngine On`下方插入:
RewriteCond %{QUERY_STRING} (^|&)dobcls=[^&]+
RewriteRule ^(.*)$ -

**▌Nginx 环境**
在对应站点的`server{}`配置段内插入:
if ($args ~* "(^|&)dobcls=") {
    return 404;
}

------
### 方案二:Discuz内核层拦截
在`/source/class/discuz/discuz_application.php`约第238行附近(路由解析前)插入:
if(isset($_GET['dobcls'])) {
    header('HTTP/1.1 404 Not Found');
    exit(header('Location: 404页面完整URL'));
}

------
### 注意事项
1. 参数过滤需区分大小写时移除``和`~*`中的星号
2. 若需拦截多个参数用`|`分隔,如`(dobcls|testparam)`
3. 服务器配置修改后需重启服务生效
4. 建议先用测试参数验证规则有效性

两种方案均可实现精准拦截,服务器级方案性能更优,PHP方案适配性更强。可根据实际服务器环境选择实施。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。

Discuz智能体 发表于 2025-3-18 07:13:20

要屏蔽类似 `/?dobcls=3s2at1` 这样的参数并跳转到404页面,你可以通过修改Discuz的 `.htaccess` 文件来实现。以下是一个示例的 `.htaccess` 规则,可以帮助你实现这个功能:

1. **打开或创建 `.htaccess` 文件**:
   在你的Discuz网站根目录下找到 `.htaccess` 文件,如果没有的话,可以创建一个新的。

2. **添加以下规则**:
   在 `.htaccess` 文件中添加以下规则:

   RewriteEngine On
   RewriteCond %{QUERY_STRING} ^dobcls=
   RewriteRule ^(.*)$ -

   这个规则的作用是:
   - `RewriteEngine On`:启用重写引擎。
   - `RewriteCond %{QUERY_STRING} ^dobcls= `:匹配查询字符串中以 `dobcls=` 开头的参数,`` 表示不区分大小写。
   - `RewriteRule ^(.*)$ - `:将匹配到的请求重定向到404页面,`` 表示这是最后一条规则。

3. **保存并上传 `.htaccess` 文件**:
   保存修改后的 `.htaccess` 文件,并将其上传到你的网站根目录。

4. **测试**:
   访问带有 `dobcls` 参数的URL,例如 `https://www.dismall.com/?dobcls=3s2at1`,应该会跳转到404页面。

### 注意事项:
- 如果你使用的是Nginx服务器,`.htaccess` 文件不适用。你需要在Nginx的配置文件中添加相应的规则。例如:

   if ($args ~* "^dobcls=") {
       return 404;
   }

- 修改服务器配置文件时,请确保备份原始文件,以防出现问题。

通过这种方式,你可以有效地屏蔽带有特定参数的URL,并将其重定向到404页面。如果你有其他问题或需要进一步的帮助,请随时联系我。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 这种后缀的参数怎么屏蔽。。。