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

discuz目录化伪静态中遇到的特殊格式URL静态化路径中目录后面不带斜杠的自动跳转

745 2
发表于 2023-1-6 22:50:17 | 查看全部 阅读模式 | Chrome| Windows 10

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

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

×
discuz目录化伪静态中遇到的特殊格式URL静态化路径中目录后面不带斜杠的自动跳转:
discuz目录化伪静态中遇到的特殊格式URL静态化路径中目录后面不带斜杠的自动跳转 discuz,目录,伪静态,静态,遇到

当使用特殊格式的路径时,以斜杠/结尾的路径,如果用户直接输入不带/结尾的url时会出现404错误页面,具体原因这里不细说,只提供相关的解决方法。在通过伪静态来做不带/结尾的路径的301跳转,但因301跳转的设置方法与伪静态组件的版本相关,所以无法自动生成对应的跳转规则,需要手动添加301跳转规则。

一、IIS Web Server(独立主机用户)

ISAPI_Rewrite 1.x:RewriteRule ^(.*)/(library|develop|database|card|wall|license|plugin)$ $1/$2/ [R,I]

ISAPI_Rewrite 2.x:RewriteRule ^(.*)/(library|develop|database|card|wall|license|plugin)$ $1/$2/ [I,RP]

ISAPI_Rewrite 3.x:RewriteRule ^(.*)/(library|develop|database|card|wall|license|plugin)$ $1/$2/ [NC,R=301]

二、Apache Web Server(独立主机用户)

RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)/(library|develop|database|card|wall|license|plugin)$ $1/ [L,R=301]

三、IIS7 Web Server(独立主机用户)

<rule name="AddTrailingSlashRule1" stopProcessing="true">
  <match url="^(.*/)*(library|develop|database|card|wall|license|plugin)$" />
  <action type="Redirect" url="{R:1}{R:2}/" />
</rule>

四、nginx

rewrite ^([^\.]*)/(library|develop|database|card|wall|license|plugin)$ $2/ permanent;

说明:

1.暂只研究上面几种,其他格式暂未研究。

2.library|develop|database|card|wall|license|plugin换成你自己获取规则中的表单名



我要说一句 收起回复
一花一世界,一叶一追寻。一曲一场叹,一生为一人。

评论2

teliy 发表于 2023-1-30 15:42:01 | 查看全部 | MiuiBrowser | XiaoMi
目录化伪静态优化
我要说一句 收起回复
Discuz智能体Lv.8 发表于 2025-3-18 04:17:46 | 查看全部
在Discuz的目录化伪静态设置中,遇到特殊格式的URL静态化路径时,如果目录后面不带斜杠,可能会导致404错误。为了避免这种情况,可以通过设置301跳转规则来实现自动跳转。以下是针对不同Web服务器的具体设置方法:

### 1. IIS Web Server(独立主机用户)

#### ISAPI_Rewrite 1.x
  1. RewriteRule ^(.*)/(library|develop|database|card|wall|license|plugin)$ $1/$2/ [R,I]
复制代码


#### ISAPI_Rewrite 2.x
  1. RewriteRule ^(.*)/(library|develop|database|card|wall|license|plugin)$ $1/$2/ [I,RP]
复制代码


#### ISAPI_Rewrite 3.x
  1. RewriteRule ^(.*)/(library|develop|database|card|wall|license|plugin)$ $1/$2/ [NC,R=301]
复制代码


### 2. Apache Web Server(独立主机用户)

  1. RewriteCond %{REQUEST_URI} !(.*)/$
  2. RewriteRule ^(.*)/(library|develop|database|card|wall|license|plugin)$ $1/$2/ [R=301,L]
复制代码


### 3. IIS7 Web Server(独立主机用户)

在IIS7中,可以通过URL重写模块来实现。具体步骤如下:

1. 打开IIS管理器,选择你的网站。
2. 在右侧的“功能视图”中,找到“URL重写”并双击打开。
3. 点击“添加规则”,选择“空白规则”。
4. 在“匹配URL”部分,设置以下内容:
   - 请求的URL:与模式匹配
   - 使用:正则表达式
   - 模式:`^(.*)/(library|develop|database|card|wall|license|plugin)$`
5. 在“条件”部分,添加一个条件:
   - 条件输入:`{REQUEST_URI}`
   - 检查输入字符串是否:不匹配模式
   - 模式:`(.*)/$`
6. 在“操作”部分,设置以下内容:
   - 操作类型:重定向
   - 重定向URL:`{R:1}/{R:2}/`
   - 重定向类型:永久(301)

### 4. Nginx

  1. rewrite ^(.*)/(library|develop|database|card|wall|license|plugin)$ $1/$2/ permanent;
复制代码


### 说明:
1. 上述规则中的`library|develop|database|card|wall|license|plugin`需要替换为你实际使用的目录名称。
2. 这些规则的作用是当用户访问不带斜杠的URL时,自动301跳转到带斜杠的URL,从而避免404错误。

### 其他注意事项:
- 如果你使用的是其他Web服务器或伪静态组件,可能需要根据具体情况进行调整。
- 在修改伪静态规则后,建议清除浏览器缓存或使用隐身模式进行测试,以确保规则生效。

如果你在设置过程中遇到问题,可以随时在DZ插件网(https://www.dz-x.net/)寻求帮助,社区中有很多经验丰富的开发者可以提供支持。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

图文热点
关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:18.97.9.170,GMT+8, 2025-4-28 08:02 , Processed in 0.181158 second(s), 87 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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