.htaccess 是一个强大的配置文件,主要用于 Apache 服务器,它能帮助你实现网站的重定向、URL 重写、设置缓存、控制访问权限等功能,对于提升网站性能、SEO友好度和安全性至关重要。

(图片来源网络,侵删)
.htaccess 文件的作用与重要性
在织梦系统中,.htaccess 最核心的作用是实现 URL 静态化,也就是将动态的、带问号 的链接,转换成看起来像静态网页的链接(如 /a/3.html),这样做的好处是:
- SEO 优化:搜索引擎更偏好静态页面,认为它们更稳定、内容更可靠。
- 用户体验:URL 更简洁、美观,用户更容易理解和记忆。
- 安全性:可以隐藏动态脚本的参数,增加一定的安全性。
织梦常用的 .htaccess 配置代码
下面是织梦系统中最常用的一些 .htaccess 配置代码,你可以根据你的需求进行组合和修改。
开启伪静态 (URL 重写)
这是织梦 .htaccess 的核心功能,你需要将以下代码放入你网站根目录下的 .htaccess 文件中。
织梦 5.7 及以下版本 (使用 rewrite 规则):

(图片来源网络,侵删)
# 织梦DedeCMS 5.7 伪静态规则 <IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^index\.html$ /index.php [I] RewriteRule ^plus/list-([0-9]+)\.html$ /plus/list.php?tid=$1 [I] RewriteRule ^plus/list-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /plus/list.php?tid=$1&totalresult=$2&PageNo=$3 [I] RewriteRule ^plus/view-([0-9]+)-([0-9]+)\.html$ /plus/view.php?arcID=$1&pageno=$2 [I] RewriteRule ^plus/view-([0-9]+)\.html$ /plus/view.php?arcID=$1 [I] RewriteRule ^plus/([a-z0-9\-]+)\.html$ /plus/$1.php [I] </IfModule>
织梦 5.7 SP2 及更高版本 (推荐使用 pathinfo 规则):
新版本织梦官方推荐使用 pathinfo 模式,它更灵活,规则也更简单。
# 织梦DedeCMS 5.7 SP2+ 伪静态规则
<IfModule mod_rewrite.c>
RewriteEngine On
# 如果请求的是真实存在的文件或目录,则直接访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 否则,将请求重写到 index.php
RewriteRule . /index.php [L]
</IfModule>
如何选择?
- 如果你使用的是较老的织梦版本(5.7 SP2 之前),使用第一套
rewrite规则。 - 如果你使用的是较新的织梦版本(5.7 SP2 及以后),强烈推荐使用第二套
pathinfo规则,因为它能兼容所有自定义的栏目和内容页规则,无需手动添加。
强制跳转 HTTPS (网站启用 SSL 证书后)
如果你的网站已经配置了 SSL 证书,希望用户访问 HTTP 时自动跳转到 HTTPS,请使用以下代码。

(图片来源网络,侵删)
# 强制将 HTTP 跳转到 HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
或者,如果你使用的是 pathinfo 规则,可以这样写:
# 强制将 HTTP 跳转到 HTTPS (适用于 pathinfo 规则)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [L,R=301]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>
注意:[R=301] 表示永久重定向,对 SEO 非常友好。
设置网站缓存 (提升访问速度)
通过设置浏览器缓存,可以减少重复请求服务器的次数,显著加快网站加载速度。
# 设置网站缓存 <IfModule mod_expires.c> ExpiresActive On # 设置缓存时间 ExpiresByType text/css "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" ExpiresByType application/x-javascript "access plus 1 year" ExpiresByType image/jpeg "access plus 1 month" ExpiresByType image/gif "access plus 1 month" ExpiresByType image/png "access plus 1 month" ExpiresByType image/webp "access plus 1 month" ExpiresByType image/x-icon "access plus 1 year" ExpiresByType application/x-font-ttf "access plus 1 year" ExpiresByType font/opentype "access plus 1 year" ExpiresByType application/x-font-woff "access plus 1 year" ExpiresByType application/vnd.ms-fontobject "access plus 1 year" </IfModule> # 压缩传输 <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/plain AddOutputFilterByType DEFLATE text/html AddOutputFilterByType DEFLATE text/xml AddOutputFilterByType DEFLATE text/css AddOutputFilterByType DEFLATE application/xml AddOutputFilterByType DEFLATE application/xhtml+xml AddOutputFilterByType DEFLATE application/rss+xml AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE application/x-javascript </IfModule>
防盗链保护 (保护你的图片/资源)
防止其他网站直接引用你网站的图片或文件,节省你的服务器流量。
# 防盗链设置
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$ [NC]
RewriteCond %{HTTP_REFERER} !yourdomain\.com [NC] # 将 yourdomain.com 替换成你自己的域名
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !baidu\. [NC]
RewriteRule \.(jpg|jpeg|gif|png|bmp|swf|rar|zip)$ - [F,L]
!^$:允许空 referer(即用户直接输入图片地址访问)。!yourdomain.com:允许你自己的网站引用。!google\. | !baidu\.:允许搜索引擎引用。\.(jpg|...):针对这些文件类型进行防盗链。[F,L]:禁止访问并立即停止处理后续规则。
屏蔽特定 IP 地址
如果你发现某个恶意 IP 在攻击你的网站,可以将其屏蔽。
# 屏蔽 IP 地址 Order Deny,Allow Deny from 123.45.67.89 # 屏蔽这个 IP # Deny from 123.45.67 # 屏蔽整个 C 段 Allow from all
如何配置 .htaccess 文件
-
创建文件:
- 在你的电脑上新建一个文本文档。
- 将你需要的代码复制并粘贴到文件中。
- 将文件另存为
.htaccess(注意文件名前面有一个点,没有后缀名)。
-
上传文件:
- 使用 FTP 工具(如 FileZilla)登录你的网站服务器。
- 进入网站的根目录(通常是
public_html、www或htdocs)。 - 将你创建好的
.htaccess文件上传到这个目录中。
-
修改权限:
- 上传后,右键点击
.htaccess文件,选择“文件权限”。 - 将权限设置为 644(所有者可读写,组用户和其他用户只读),这是最安全的权限设置。
- 上传后,右键点击
-
后台设置:
- 登录你的织梦后台。
- 进入 “系统” -> “系统基本参数” -> “核心设置”。
- 找到 “是否使用伪静态” 选项,将其设置为 “是”。
- 根据你使用的
.htaccess规则,选择对应的 “伪静态规则”(rewrite或pathinfo)。 - 点击“保存”按钮。
-
测试:
- 清空浏览器缓存。
- 访问你的网站首页和几个栏目页、文章页,查看 URL 是否已经变成静态格式。
- 使用站长工具(如百度、360站长平台)的抓取诊断功能,测试一下链接是否能正常访问。
常见问题与注意事项
- 404 错误:如果配置后出现 404 错误,通常是因为:
- Apache 服务器没有开启
mod_rewrite模块,你需要联系你的主机服务商,让他们帮你开启。 .htaccess文件中的规则有误,或者与服务器环境不兼容。- 织梦后台的伪静态设置没有开启或规则选择错误。
- Apache 服务器没有开启
- 500 内部服务器错误:这通常是
.htaccess文件语法错误导致的,检查代码是否有拼写错误,或者尝试将代码简化,一步步排查。 - 文件编码:请确保
.htaccess文件保存为 UTF-8 无 BOM 格式,否则可能会出现乱码或错误。 - 优先级:
.htaccess文件会覆盖服务器主配置文件中的某些设置,如果多个.htaccess文件存在,子目录中的文件会优先于父目录中的文件生效。
通过合理配置 .htaccess,你可以让你的织梦网站在性能、SEO 和安全性上得到显著提升。
