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

请问Discuz帖子搜索页怎么做伪静态啊

190 3
发表于 2023-7-11 16:37:24 | 查看全部 阅读模式

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

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

×
请问谁做过,搜索页的伪静态啊,用的Nginx
我知道答案 回答被采纳将会获得1 贡献 已有1人回答
我要说一句 收起回复

评论3

浅生Lv.8 发表于 2023-7-11 16:38:08 | 查看全部
没有必要,伪静态除了地址看起来好看点,现在基本都是缺点(增加了性能消耗,相比动态并不存在收录优势)
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-17 20:04:23 | 查看全部
在Discuz中实现帖子搜索页的伪静态化,尤其是在Nginx环境下,可以通过以下步骤来完成。我们将通过修改Nginx的配置文件来实现伪静态规则。

### 1. 修改Nginx配置文件
首先,你需要编辑Nginx的配置文件(通常是`nginx.conf`或者站点配置文件),添加伪静态规则。

假设你的Discuz安装在根目录下,你可以添加以下规则:

  1. location / {
  2.     if (!-e $request_filename) {
  3.         rewrite ^/search-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /search.php?mod=forum&searchid=$1&orderby=$2&ascdesc=$3&searchsubmit=$4&kw=$5&srchtxt=$6&srchuname=$7&srchfilter=$8&srchfrom=$9 last;
  4.     }
  5. }
复制代码


### 2. 解释规则
- `^/search-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)-([0-9]+)\.html$`:这是匹配搜索页URL的正则表达式。`([0-9]+)`表示匹配数字,分别对应搜索参数。
- `/search.php?mod=forum&searchid=$1&orderby=$2&ascdesc=$3&searchsubmit=$4&kw=$5&srchtxt=$6&srchuname=$7&srchfilter=$8&srchfrom=$9`:这是将伪静态URL映射到实际的`search.php`文件,并将参数传递给该文件。

### 3. 重启Nginx
修改完配置文件后,记得重启Nginx服务以使配置生效:

  1. sudo systemctl restart nginx
复制代码


### 4. 修改Discuz后台设置
在Discuz后台,确保伪静态功能已经开启,并且选择了Nginx作为服务器类型。

1. 登录Discuz后台。
2. 进入“全局” -> “SEO设置” -> “URL 静态化”。
3. 确保“启用 URL 静态化”已开启,并选择“Nginx”作为服务器类型。
4. 保存设置。

### 5. 测试伪静态
现在你可以访问一个搜索页,看看URL是否已经变成了伪静态的形式。例如:

  1. http://yourdomain.com/search-1-2-3-4-5-6-7-8-9.html
复制代码


这个URL应该能够正确映射到`search.php`并传递相应的参数。

### 6. 自定义伪静态规则
如果你需要自定义伪静态规则,可以根据你的需求调整正则表达式和映射规则。确保正则表达式能够正确匹配URL,并且映射规则能够正确传递参数。

### 注意事项
- 确保Nginx的`rewrite`模块已经启用。
- 如果你使用的是宝塔面板或其他管理面板,可以直接在面板的伪静态设置中添加上述规则。

通过以上步骤,你应该能够成功实现Discuz帖子搜索页的伪静态化。如果有任何问题,欢迎继续提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-17 20:07:32 | 查看全部
在Discuz中实现帖子搜索页的伪静态化,尤其是使用Nginx作为Web服务器时,可以通过以下步骤来完成。我们将通过修改Nginx的配置文件来实现伪静态规则。

### 1. 修改Discuz后台的伪静态设置
首先,确保在Discuz后台已经启用了伪静态功能。进入Discuz后台 -> 全局 -> SEO设置 -> URL静态化,确保“启用URL静态化”已经开启。

### 2. 修改Nginx配置文件
接下来,我们需要在Nginx的配置文件中添加伪静态规则。假设你的Nginx配置文件位于 `/etc/nginx/nginx.conf` 或者 `/etc/nginx/sites-available/default`,你可以根据实际情况找到对应的配置文件。

在 `server` 块中添加以下规则:

  1. location / {
  2.     try_files $uri $uri/ /index.php?$args;
  3. }

  4. location /search {
  5.     rewrite ^/search-(.*)\.html$ /search.php?mod=forum&searchid=$1 last;
  6.     rewrite ^/search-(.*)-(.*)\.html$ /search.php?mod=forum&searchid=$1&page=$2 last;
  7. }
复制代码


### 3. 解释规则
- `rewrite ^/search-(.*)\.html$ /search.php?mod=forum&searchid=$1 last;`  
  这条规则将形如 `/search-123.html` 的URL重写为 `/search.php?mod=forum&searchid=123`,其中 `123` 是搜索ID。

- `rewrite ^/search-(.*)-(.*)\.html$ /search.php?mod=forum&searchid=$1&page=$2 last;`  
  这条规则将形如 `/search-123-2.html` 的URL重写为 `/search.php?mod=forum&searchid=123&page=2`,其中 `123` 是搜索ID,`2` 是页码。

### 4. 重启Nginx
修改完Nginx配置文件后,保存并重启Nginx服务以使配置生效:

  1. sudo systemctl restart nginx
复制代码


### 5. 测试伪静态
现在你可以访问你的Discuz站点,尝试使用搜索功能,看看URL是否已经变成了伪静态的形式。

### 6. 其他注意事项
- 如果你使用的是自定义的搜索页面模板,可能需要根据实际情况调整伪静态规则。
- 如果你在配置过程中遇到问题,可以检查Nginx的错误日志(通常位于 `/var/log/nginx/error.log`)来排查问题。

通过以上步骤,你应该能够成功实现Discuz帖子搜索页的伪静态化。如果你有其他问题或需要进一步的帮助,请随时提问。

---

**注意**:以上内容是基于Discuz开发手册和Nginx配置的通用解决方案。如果你有更复杂的需求或遇到特殊问题,建议参考DZ插件网(https://www.dz-x.net/)上的相关资源或寻求专业开发者的帮助。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:3.128.186.97,GMT+8, 2025-4-21 07:55 , Processed in 0.592946 second(s), 80 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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