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

discuz X2伪静态规则补充

324 2
发表于 2020-7-8 10:41:45 | 查看全部 阅读模式

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

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

×
鉴于X2的URL 静态化在原有的基础添加了一些规则,导致社区上有人反映URL 静态化页面失效。

特此补充一下静态化规则(在原有的基础上添加,为了防止冲突,请添加到原有规则之前):

使用Apache 2.x的虚拟用户在相应的配置文件在原有的规则下添加:
  1. RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^blog-([0-9]+)-([0-9]+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^article-([0-9]+)-([0-9]+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
复制代码
使用IIS的用户在相应的配置文件原有的规则下添加:
  1. RewriteRule ^(.*)/blog-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/home\.php\?mod=space&uid=$2&do=blog&id=$3&$5RewriteRule ^(.*)/topic-(.+)\.html(\?(.*))*$ $1/portal\.php\?mod=topic&topic=$2&$4RewriteRule ^(.*)/article-([0-9]+)-([0-9]+)\.html(\?(.*))*$ $1/portal\.php\?mod=view&aid=$2&page=$3&$5
复制代码
使用nginx的用户在相应的配置文件原有的规则下添加:
  1. rewrite ^([^\.]*)/blog-([0-9]+)-([0-9]+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
复制代码
其他修改见:
X2对rewrite调整后兼容X15的rewrite的办法
http://www.discuz.net/thread-2143870-1-1.html
我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

IT618发布Lv.8 发表于 2020-7-8 10:41:56 | 查看全部
默认的2没啥大问题的
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-19 09:54:59 | 查看全部
在Discuz X2中,伪静态规则的配置是非常重要的,尤其是在URL静态化的情况下。你提供的规则是为了解决一些用户在URL静态化页面失效的问题。以下是对你提供的规则的详细解释和补充说明:

### 1. Apache 2.x 伪静态规则
对于使用Apache 2.x的用户,你需要在原有的伪静态规则基础上添加以下规则:

  1. RewriteCond %{QUERY_STRING} ^(.*)$
  2. RewriteRule ^blog-(+)-(+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1

  3. RewriteCond %{QUERY_STRING} ^(.*)$
  4. RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1

  5. RewriteCond %{QUERY_STRING} ^(.*)$
  6. RewriteRule ^article-(+)-(+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
复制代码


- **RewriteCond %{QUERY_STRING} ^(.*)$**:这个条件用于捕获URL中的查询字符串(即`?`后面的部分),并将其存储在`%1`中。
- **RewriteRule ^blog-(+)-(+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1**:这个规则将形如`blog-1-2.html`的URL重写为`home.php?mod=space&uid=1&do=blog&id=2`,并保留原有的查询字符串。
- **RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1**:这个规则将形如`topic-abc.html`的URL重写为`portal.php?mod=topic&topic=abc`,并保留原有的查询字符串。
- **RewriteRule ^article-(+)-(+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1**:这个规则将形如`article-1-2.html`的URL重写为`portal.php?mod=view&aid=1&page=2`,并保留原有的查询字符串。

### 2. IIS 伪静态规则
对于使用IIS的用户,你需要在原有的伪静态规则基础上添加以下规则:

  1. RewriteRule ^(.*)/blog-(+)-(+)\.html(\?(.*))*$ $1/home\.php\?mod=space&uid=$2&do=blog&id=$3&$5

  2. RewriteRule ^(.*)/topic-(.+)\.html(\?(.*))*$ $1/portal\.php\?mod=topic&topic=$2&$4

  3. RewriteRule ^(.*)/article-(+)-(+)\.html(\?(.*))*$ $1/portal\.php\?mod=view&aid=$2&page=$3&$5
复制代码


- **RewriteRule ^(.*)/blog-(+)-(+)\.html(\?(.*))*$ $1/home\.php\?mod=space&uid=$2&do=blog&id=$3&$5**:这个规则将形如`/blog-1-2.html`的URL重写为`/home.php?mod=space&uid=1&do=blog&id=2`,并保留原有的查询字符串。
- **RewriteRule ^(.*)/topic-(.+)\.html(\?(.*))*$ $1/portal\.php\?mod=topic&topic=$2&$4**:这个规则将形如`/topic-abc.html`的URL重写为`/portal.php?mod=topic&topic=abc`,并保留原有的查询字符串。
- **RewriteRule ^(.*)/article-(+)-(+)\.html(\?(.*))*$ $1/portal\.php\?mod=view&aid=$2&page=$3&$5**:这个规则将形如`/article-1-2.html`的URL重写为`/portal.php?mod=view&aid=1&page=2`,并保留原有的查询字符串。

### 3. Nginx 伪静态规则
对于使用Nginx的用户,你需要在原有的伪静态规则基础上添加以下规则:

  1. rewrite ^(*)/blog-(+)-(+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;

  2. rewrite ^(*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;

  3. rewrite ^(*)/article-(+)-(+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
复制代码


- **rewrite ^(*)/blog-(+)-(+)\.html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;**:这个规则将形如`/blog-1-2.html`的URL重写为`/home.php?mod=space&uid=1&do=blog&id=2`。
- **rewrite ^(*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;**:这个规则将形如`/topic-abc.html`的URL重写为`/portal.php?mod=topic&topic=abc`。
- **rewrite ^(*)/article-(+)-(+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;**:这个规则将形如`/article-1-2.html`的URL重写为`/portal.php?mod=view&aid=1&page=2`。

### 4. 其他注意事项
- **规则顺序**:在添加这些规则时,请确保将它们添加到原有规则之前,以避免冲突。
- **测试规则**:在应用这些规则后,建议你通过访问相应的URL来测试规则是否生效。
- **备份配置文件**:在修改配置文件之前,建议你先备份原有的配置文件,以防出现问题时可以快速恢复。

### 5. 参考链接
- [X2对rewrite调整后兼容X15的rewrite的办法](http://www.discuz.net/thread-2143870-1-1.html)

如果你在配置过程中遇到任何问题,欢迎随时在DZ插件网(https://www.dz-x.net/)上寻求帮助,我们的技术团队会尽力为你提供支持。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:18.117.161.73,GMT+8, 2025-4-5 02:18 , Processed in 0.348269 second(s), 84 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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