搜索引擎优化的最佳 .htaccess 指南 – 示例
已发表: 2022-09-11
对您的 .htaccess 文件进行一些更改后,您的网站可能已离线。 但这不必担心! 许多 SEO 在尝试通过技术修复来超越时落入了这个陷阱。
通常,通过 WordPress 仪表板编辑 .htaccess 文件会导致恐慌发作,因为一旦您更新了不正确的 .htaccess 文件,您就会被锁定在仪表板之外。 .htaccess 文件对 SEO 来说既是福也是祸,因为它们允许您更改网站的操作。
如果您的网站在 Apache Web 服务器上运行,.htaccess 可以帮助您处理从密码保护到 301 重定向和自定义错误页面的所有内容。
如果您正在寻求快速补救措施以在 a.htaccess 更新失败后让您的网站重新上线,或者您想了解有关优化网站的.htaccess 的更多信息,那么您认为该资源不存在。
我们将进行一些 quick.htaccess 调整和建议,以便您作为 SEO 可以自信地对您的网站进行修改,而不必担心负面后果。
您已经知道什么是.htaccess 以及它对于使用 Apache Web 服务器的网站管理员有多么有用。 但是,对于那些不熟悉 .htaccess 的人,我会先复习一下基础知识,以帮助他们在实施之前掌握它。
什么是.htaccess?

.htaccess 是一个配置文件,Apache Web 服务器软件可以读取和执行以启用或停用其他功能和能力。 因为 .htaccess 文件是在基于 Unix 的环境中创建并在目录级别呈现的,所以它会覆盖全局 Web 服务器设置,从而允许特定的网站访问设置。
.htaccess 代表什么?
“超文本访问”缩写为 .htaccess。 在该文件在使用它来调整每个目录的用户可访问性功能的开发人员中流行起来之后,这个名字就被派生了。
.htaccess 使用 Apache 服务器的 http.config 指令来启用和限制具有用户名和密码的用户对目录的访问。 然而,当谈到 SEO 时,.htaccess 扮演着更大的角色。
.htaccess 是做什么用的?
如果您的网站定期有很多不同的标准,请考虑使用 .htaccess。
作为 SEO,您可以使用 .htaccess 命令网络服务器执行 301 重定向、激活缓存、更改 HTTP 标头、控制抓取以及使 URL 对 SEO 友好等。
在哪里可以找到 .htaccess 文件?
因为 .Htaccess 是一个目录级设置,所以您几乎可以在所有 Web 目录的文件夹中找到它。 如果您有一个包含多个子目录(网站)的 Web 目录,则可以在根目录以及每个子文件夹中找到 .htaccess 文件。
如果您使用的是 WordPress,Yoast 插件选项是访问 .htaccess 文件的最佳方式。
注意:因为 .htaccess 不是初学者应该尝试的东西,我建议先在演示站点上进行。 如果您被 WordPress 管理员锁定,您需要知道如何使用 Filezilla 进入根文件夹。
如果您有 WordPress 网站,有一些插件可以让您更改 .htaccess 文件。 因为大多数 WordPress 用户使用 Yoast 作为他们的默认 SEO 插件,我将向您展示如何从 Yoast 仪表板中更改 .htaccess 文件。
第 1 步:转到您的 WordPress 管理仪表板并登录。
第 2 步:转到 Yoast 设置页面。
第三步:打开工具菜单。
第 4 步:从工具菜单中选择“文件编辑器”。
第 5 步:编辑后保存 .htaccess 文件。
大多数 WordPress 网站中 .htaccess 的默认设置如下:
# 开始 WordPress
重写引擎开启
RewriteBase /
重写规则 ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
重写规则。 /index.php [L]
# 结束 WordPress
如果您的网站没有 .htaccess 文件怎么办?
因为.htaccess 是一个自动创建的配置文件,它会出现在 99% 的情况下。 但是,由于它通常是目录中的隐藏文件,因此网站管理员认为它已丢失。 如果您启用“显示隐藏文件”,您应该能够找到它。
如果在所有这些之后仍然找不到 .htaccess 文件,则必须手动创建一个并将其上传到您的 Web 服务器。
创建自定义 .htaccess 文件的步骤
第1步:拿一个记事本开始写作。
第 2 步:写下配置(使用上面提供的默认配置进行测试)
第 3 步:将文件另存为 ASCII 格式的 .htaccess。
第 4 步:确保文件未以 .txt 格式保存。
第 5 步:使用 Filezilla 将 .htaccess 文件上传到您的 Web 目录。
注意:如果您使用的是 WordPress 并且 .htaccess 文件字段为空,只需添加配置并保存即可。
如果您在更新 .htaccess 文件后被锁定在 WordPress Dashboard 之外怎么办?
使用 Yoast 或 WP 文件管理器更新 .htaccess 文件后,您可能已被锁定在仪表板之外。 不要担心。 这是一个很容易解决的问题。
如果您是 SEO,请向开发人员或服务器管理员请求对您网站的 FTP 访问权限。 如果您需要专业人士的帮助,您的开发人员可能是您致电的理想人选。
第 1 步:打开 FileZilla 并登录到您的 Web 目录。
第二步:打开目录,下载.htaccess文件。
第三步:替换.htaccess文件中的默认设置并保存。
第4步:在目录中,将旧的.htaccess文件替换为新的。
如果您的首要任务是尽快让网站恢复在线,请使用默认代码。 如果您对 .htaccess 文件进行了大量更改,请查找出错的代码。 将其从文件中删除,然后再将其重新上传到服务器。
为什么更新 .htaccess 文件后出现错误?
如果您是一名尝试从头开始学习 .htaccess 的 SEO,那么您一开始肯定会犯一些错误。 在您弄清楚 Web 服务器报告问题的原因之前,这是可以的。
在更改 .htaccess 文件时,SEO 面临一些常见问题。 下面列出了最常见的 .htaccess 问题。
- 禁用覆盖:您必须首先启用 AllowOverride 才能使您的.htaccess 文件正常工作。 如果 AllowOverride 选项设置为 None,则在 .htaccess 中设置的所有自定义设置都将被禁用。 要确保“覆盖”选项已打开,请执行以下操作:
第 1 步:导航到 Apache 配置文件并双击它 (http.conf)
第 2 步:在 AllowOverride 指令中将 Allow OverRide 更改为 AllowOverride All。
第 3 步:保存 Apache 配置文件并重新启动 Apache。
- 文件名拼写错误:第二个最常见的 SEO 错误是文件名拼写错误。 Misspelling.htaccess 将导致错误,因为它是以 ASCII 格式保存的基于 Unix 的配置文件。 如果文件不以“.”开头,Apache 服务器将忽略该文件和您提供的配置。 或以不同的文件类型上传,例如 .txt。
- .htaccess 文件的层次结构很重要: .htaccess 文件的层次结构很重要:.htaccess 文件的层次结构很重要:.htaccess 文件的层次结构 IA 一些添加到 .htaccess 文件开头的规则可能会覆盖以后添加的规则在配置中。 如果您认为这些至关重要,请考虑将配置移至顶部。
- 多个.htaccess 文件:因为每个目录都可以使用.htaccess 文件,所以您的网站可以使用多个.htaccess 文件。 在这种情况下,一个文件的配置可能会与另一个文件的配置冲突,从而导致问题。 可以禁用 Individual.htaccess 文件来解决此问题。
- 语法错误: .htaccess 文件的功能完全取决于用于设置您的网站的语法。 文件语法问题可能会使您的站点脱机,从而导致恐慌发作。 因此,在更改您的 .htaccess 文件之前了解语法至关重要。
更新 .htaccess 文件后,您会收到哪些常见错误消息?
用户每次查看您的网站时都会直接或间接与网络服务器进行交互。 当用户点击他们看到的照片和其他资源时,Web 服务器会获取他们看到的站点,因此您可以将其限制为网站管理员。
.htaccess 是一些网站用来设置访问其页面的身份验证的文件。 当涉及到 SEO 时,他们使用它来确保访问者和搜索引擎机器人能够快速访问对他们来说最重要的页面。 如果网站未能提供所需信息,Web 服务器会根据 .htaccess 文件中定义的配置生成错误代码。
这是 Web 服务器无法获取请求的数据时显示的错误代码列表。
客户端请求错误
- 400 — 错误请求:无效的 URL 结构。 服务器无法理解用户提出的请求。
- 401 - 需要授权:当网站管理员限制对页面的访问时,会显示这些消息。
- 402——需要付款(尚未使用):如果付款启动失败,通常会给出此代码。
- 403 - 禁止 -您收到 403 错误的简单原因是因为您尝试访问具有受限权限的资源。 当用户尝试访问需要身份验证的页面时,网站会显示 403 禁止错误。
- 404 - 未找到: 404 向用户明确指示所请求的 URL 在网站上不可用。 这可能是由于 URL 中的拼写错误或页面已从站点中删除。
- 405 - Method Not Allowed:此 HTTP 响应状态代码表明服务器拒绝接受请求方法,尽管了解请求的目的。
- 406 — 不可接受(编码):这通常发生在服务器无法用接受标头请求响应时。
- 407 - 需要代理身份验证:此错误表示由于浏览器和服务器之间缺少代理服务器身份验证而无法完成请求。
- 408 — 请求超时:这是当服务器未能在分配的超时期限内接收到来自客户端的完整请求时,网站管理员遇到的常见 HTTP 错误之一。
- 409 - 冲突请求:当目标资源的状态与当前状态冲突时会发生此错误。 要解决错误,请确定冲突并重新提交。
- 410 - 消失:此错误代码表示对请求资源的访问已从服务器中永久删除,并且将始终如此。
- 411 - 需要内容长度:该错误表示由于未能定义内容长度标头,服务器无法接受客户端请求。
- 412 - Precondition Failed:这是由于与您的服务器上已实施的一个或多个安全配置的安全冲突而导致的错误。
- 413——请求实体太长:当请求的资源太大而服务器无法加载时,用户可能会遇到 413 错误。
- 414 - 请求 URI 太长:想想 2048 个字符以上的 URL 结构。 服务器无法破译产生的 414 错误。
- 415 — 不支持的媒体类型:当服务器拒绝加载不支持的媒体格式的资源时,会出现此错误。
服务器错误
- 500内部服务器错误
- 501 - 未实施
- 502错误的网关
- 503服务不可用
- 504网关超时
- 505 — 不支持 HTTP 版本。
.htaccess 是做什么用的?

重定向
您最近是否更改了网站的域名?

作为 SEO,您不希望您的用户看到 404 页面,当然也不希望您来之不易的所有权限都蒸发掉。
考虑将您的 .htaccess 文件作为这两个问题的解决方案。 您可以通过将重定向指令添加到您的 .htaccess 文件来将您的流量和站点权限重定向到新域。
有趣的是,您可以对网站的 URL 做同样的事情。 您可以使用 301 重定向指令强制尝试访问旧 URL 的用户和搜索引擎机器人查看您网站上的新页面。
使用 .htaccess,以下是域级重定向的示例:
# 这允许您将整个网站重定向到任何其他域
重定向 301 / http://example.com/
使用 .htaccess,以下是 URL 重定向的示例:
重定向匹配 301 ^/old-url.html$ /new-url.html
对 SEO 友好的 URL
您的网址结构是否混乱? 访问者和搜索引擎机器人是否难以解读页面上的内容? 这是很多站长都面临的问题。
一个网站获得权限后,不注意URL结构就成了一个大问题。
您可以使用 .htacces 为您的网站设置正确的 URL 格式。
此外,您的 URL 附带的任何扩展名,例如 .html 或 .php,都可以通过在.htaccess 文件中添加指令来简单地消除。
示例 1:使用 .htaccess 删除 URL 中的扩展名
删除 .php 作为扩展名
重写引擎开启
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
删除 .html 作为扩展名
重写引擎开启
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html [NC,L]
示例 2:使用 .htaccess 将 URL 设为小写
方法一
RewriteCond %{REQUEST_URI} [AZ]
重写规则。 ${lc:%{REQUEST_URI}} [R=301,L]
所有 URL 结构,包括域名,都将受到上述代码的影响。
方法二
RewriteCond %{REQUEST_URI} [AZ]
RewriteRule ^.+.html$ ${lc:%{REQUEST_URI}} [NC,R=301,L]
只有 html 文件名会受到前一个文件名的影响。
示例 2:使用 .htaccess 进行动态 URL 重写
重写引擎开启
RewriteRule /(.*)/(.*)/$ page.php?category=$1&product=$2
错误网址: site.com/page.php?category=2&product=54
好网址: site.com/sandwiches/rueben-sandwich/
- 使用 .htaccess 提高网站速度
网站管理员之间的新流行词是页面速度。
他们完全有理由引起骚动,因为谷歌现在认为它是 SERP 页面排名中最重要的元素之一。
Google 不希望用户在访问排名靠前的页面时产生负面体验。
加载缓慢的网站也会浪费大量的抓取预算。
配置您的 .htaccess 文件是提高网站速度的最简单、最安全的方法之一。
- 启用缓存功能
通过在 .htaccess 文件中启用缓存功能,网站的资源将保存在访问者的浏览器中,从而加快加载速度。
您可以使用两种不同的方法启用缓存
ExperiesByType — 您可以使用此方法 in.htaccess 为您网站上的每个资源指定一个缓存时间窗口,也就是过期时间。
例子:
<ifModule mod_headers.c>
# 年
<FilesMatch ".(ico|gif|jpg|jpeg|png|flv|pdf)$">
标头集缓存控制“max-age=29030400”
</文件匹配>
# 星期
<FilesMatch ".(js|css|swf)$">
标头集 Cache-Control "max-age=604800"
</文件匹配>
# 45 分钟
<FilesMatch ".(html|htm|txt)$">
标头集 Cache-Control "max-age=2700"
</文件匹配>
</ifModule>
Cache-Control 标头— 缓存控制标头使用资源在到期前的最大使用期限。
例子:
# 大多数静态资产一个月
<filesMatch ".(css|jpg|jpeg|png|gif|js|ico)$">
标头集 Cache-Control "max-age=2628000, public"
</filesMatch>
启用 Gzip 压缩
网站资源的大小是减慢速度的唯一因素。 通过在 .htaccess 文件中激活 gzip,您可以在将数据传输到客户端浏览器时降低图片大小、文件大小和文件编号。
最简单的 .htaccess 指令之一是启用 gzip 压缩。
这是一个插图:
<ifModule mod_gzip.c>
mod_gzip_on 是
mod_gzip_dechunk 是
mod_gzip_item_include 文件 .(html?|txt|css|js|php|pl)$
mod_gzip_item_include 处理程序 ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>
启用放气选项
因为有些网络服务器不支持 gzip,所以网站可能会遇到困难。 在这种情况下,建议使用 .htaccess 文件中的 deflate 选项。
这是一个插图:
<IfModule mod_deflate.c>
# 压缩文本、HTML、JavaScript、CSS、XML
AddOutputFilterByType DEFLATE 应用程序/javascript
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE 应用程序/x-javascript
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE 应用程序/xml
AddOutputFilterByType DEFLATE 字体/otf
AddOutputFilterByType DEFLATE 字体/ttf
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE 文本/css
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE 文本/纯文本
AddOutputFilterByType DEFLATE 文本/xml
# 以下几行是为了避免某些浏览器的错误
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] 无 gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
BrowserMatch bMSI[E] !no-gzip !gzip-only-text/html
# 如果这些文件已经缓存,则不缓存
SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip
# 代理必须提供正确的内容
# Header append Vary User-Agent env=!dont-vary
标题追加不同的用户代理
</IfModule>
使用 .htaccess 改进抓取和索引
您可能已经在使用 robots.txt 文件来控制搜索引擎是否可以抓取您的网站并将其编入索引。 但是,您的网站可能包含网页以外的资源。 rbot.txt 在这种情况下可能不起作用。
在 .htaccess 文件中设置 X-robots-tag 是使一些资源(例如 PFD 或 Word 文档)无索引的理想技术。
.htaccess 文件的自定义标头与所有索引器指令兼容。
例子:
<FilesMatch ".(docx|pdf)$">
标头添加 X-robots-tag "noindex, noarchive, nosnippet"
</文件匹配>
在这种情况下,任何带有 extensions.doc 和.pdf 的文件都将被视为 noindex、noarchive 和 nosnippet。
几乎每个 Apache 服务器都带有一个预配置的配置文件。 但是,由于这适用于整个站点,因此很难设置目录级别的自定义。
这是 .htaccess 派上用场的地方。 .htaccess 文件可用于覆盖目录和子文件夹级别的 Apache 配置设置。
此外,您可以使用简单的设置代码设置身份验证。 如果您在共享主机帐户上有许多网站,这将特别有用。
.htaccess 文件的优点
- 它读取所有请求。
- 无需重新启动服务器,即可立即进行修改。
- 根据用户偏好有效管理用户访问
- 在目录级别设置配置。
- 对于 SEO 来说,这是一个巨大的福音。
.htaccess 文件的缺点
- .htaccess 文件的使用可以增强与托管网站相关的安全问题。
- 因为每次加载页面时都会扫描和读取 .htaccess 文件,因此它比服务器端设置要慢。
- 它会影响接收数百万访问者的网站的速度。
出于安全和性能考虑,不建议将 .htaccess 文件作为服务器设置的一种方式。