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

虚拟主机利用.htaccess用户静态链接无法正常使用

211 2
发表于 2024-6-13 10:34:27 | 查看全部 阅读模式

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

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

×
虚拟主机利用.htaccess用户静态链接无法正常使用 虚拟,虚拟主机,利用,htaccess,用户

可以正常打开网页,但都不是静态链接,只有在发帖成功后才会展示静态链接,但是这个链接又打不开。

  1. # 将 RewriteEngine 模式打开RewriteEngine On# 如 www.discuz.vip/bbs/,对应的就是 RewriteBase /bbs/,如果程序放在根目录中,使用 RewriteBase /RewriteBase /# Rewrite 系统规则请勿修改RewriteCond %{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&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^forum-(\w+)-([0-9]+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^group-([0-9]+)-([0-9]+)\.html$ forum.php?mod=group&fid=$1&page=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^blog-([0-9]+)-([0-9]+)\.html$ home.php?mod=space&uid=$1&do=blog&id=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^archiver/(fid|tid)-([0-9]+)\.html$ archiver/index.php?action=$1&value=$2&%1RewriteCond %{QUERY_STRING} ^(.*)$RewriteRule ^([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html$ plugin.php?id=$1:$2&%1
复制代码

我知道答案 回答被采纳将会获得1 贡献 已有1人回答
我要说一句 收起回复

评论2

拾光Lv.8 发表于 2024-6-13 10:35:07 | 查看全部
联系你空间商客服吧! 是你没设置好, 或者是 你空间故障
我要说一句 收起回复
AI智能体Lv.7 发表于 2025-3-17 17:09:31 | 查看全部
根据你提供的 `.htaccess` 文件内容,静态链接无法正常使用的问题可能与以下几个原因有关:

### 1. **RewriteBase 设置问题**
   - 你提到 `RewriteBase /`,这表示你的 Discuz! 程序是安装在根目录下的。如果你的程序安装在子目录(例如 `/bbs/`),则需要将 `RewriteBase` 设置为 `/bbs/`。确保 `RewriteBase` 的设置与你的实际安装路径一致。

### 2. **正则表达式问题**
   - 在你的 `.htaccess` 文件中,有一些正则表达式可能存在问题。例如:
     - `^article-(+)-(+)\.html$` 和 `^thread-(+)-(+)-(+)\.html$` 中的 `+` 应该改为 `\d+`,表示匹配数字。正确的写法应该是:
      
  1. RewriteRule ^article-(\d+)-(\d+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1
  2.        RewriteRule ^thread-(\d+)-(\d+)-(\d+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1
复制代码

     - 类似地,其他规则中的 `+` 也应该改为 `\d+` 或 `\w+`,具体取决于你要匹配的内容。

### 3. **服务器配置问题**
   - 确保你的虚拟主机支持 `.htaccess` 文件的重写规则。有些虚拟主机可能需要你在控制面板中启用 `mod_rewrite` 模块。
   - 如果你使用的是 Apache 服务器,确保 `AllowOverride` 设置为 `All`,以便允许 `.htaccess` 文件中的重写规则生效。

### 4. **Discuz! 后台设置**
   - 在 Discuz! 后台,确保你已经启用了 URL 静态化功能。进入后台 -> 全局 -> SEO设置 -> URL 静态化,勾选你需要静态化的页面类型,并保存设置。

### 5. **缓存问题**
   - 如果你在修改 `.htaccess` 文件后仍然无法看到静态链接,尝试清除浏览器缓存和 Discuz! 的缓存(后台 -> 工具 -> 更新缓存)。

### 6. **文件权限问题**
   - 确保 `.htaccess` 文件的权限设置正确,通常应该是 `644` 或 `644`。

### 7. **测试静态链接**
   - 你可以手动输入一个静态链接(例如 `http://yourdomain.com/thread-1-1-1.html`)来测试是否能够正常访问。如果手动输入可以访问,但通过页面生成的链接无法访问,可能是生成链接的代码有问题。

### 8. **日志查看**
   - 如果问题仍然存在,查看 Apache 的错误日志(通常是 `error.log`),看看是否有相关的错误信息。错误日志可以帮助你定位问题。

### 修正后的 `.htaccess` 示例:
  1. # 将 RewriteEngine 模式打开
  2. RewriteEngine On

  3. # 如 www.discuz.vip/bbs/,对应的就是 RewriteBase /bbs/,如果程序放在根目录中,使用 RewriteBase /
  4. RewriteBase /

  5. # Rewrite 系统规则请勿修改
  6. RewriteCond %{QUERY_STRING} ^(.*)$
  7. RewriteRule ^topic-(.+)\.html$ portal.php?mod=topic&topic=$1&%1

  8. RewriteCond %{QUERY_STRING} ^(.*)$
  9. RewriteRule ^article-(\d+)-(\d+)\.html$ portal.php?mod=view&aid=$1&page=$2&%1

  10. RewriteCond %{QUERY_STRING} ^(.*)$
  11. RewriteRule ^forum-(\w+)-(\d+)\.html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1

  12. RewriteCond %{QUERY_STRING} ^(.*)$
  13. RewriteRule ^thread-(\d+)-(\d+)-(\d+)\.html$ forum.php?mod=viewthread&tid=$1&extra=page\%3D$3&page=$2&%1

  14. RewriteCond %{QUERY_STRING} ^(.*)$
  15. RewriteRule ^group-(\d+)-(\d+)\.html$ forum.php?mod=group&fid=$1&page=$2&%1

  16. RewriteCond %{QUERY_STRING} ^(.*)$
  17. RewriteRule ^space-(username|uid)-(.+)\.html$ home.php?mod=space&$1=$2&%1

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

  20. RewriteCond %{QUERY_STRING} ^(.*)$
  21. RewriteRule ^archiver/(fid|tid)-(\d+)\.html$ archiver/index.php?action=$1&value=$2&%1

  22. RewriteCond %{QUERY_STRING} ^(.*)$
  23. RewriteRule ^([^/]*)-([^/]*)\.html$ plugin.php?id=$1:$2&%1
复制代码


### 总结
通过以上步骤,你应该能够解决静态链接无法正常使用的问题。如果问题仍然存在,建议进一步检查服务器配置和 Discuz! 的相关设置。
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
我要说一句 收起回复

回复

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

本版积分规则

关闭

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

AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

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

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

您的IP:18.223.23.30,GMT+8, 2025-5-2 09:22 , Processed in 0.401809 second(s), 79 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

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