尽管在 WordPress 上设置网站很容易,但您可能会错过在管理内容时对用户体验产生负面影响的链接。可以手动或通过 WordPress 轻松找到带有 404 代码的错误链接。此外,您还可以监控 WordPress 发送的电子邮件并检查您网站的任何问题。为了修复错误的代码,我为您编译了 WordPress 中最快的 301 重定向方法。

什么是 301 重定向?

301代码是http状态代码之一。 301 重定向是使用 301 代码将页面从旧 URL 重定向到新 URL 的名称。它主要在页面的 url 更改或其内容移动时使用。它在 SEO 过程中占有重要地位。您可以在下面找到 301 重定向示例的综合示例。

简单的 301 重定向

简单的 301 重定向是通过在站点根目录下的 .htaccess 文件中编写的以下代码来完成的。

https://www.domainadresiniz.com/yeni-sayfanizin-absolute-urlsi/“ style="color:#272822;display:none;background-color:#F8F8F2" aria-label="复制" data-copied-text="已复制!" data-has-text-button="textSimple" data-inside-header-type="headlights" aria-live="polite" class="code-block-pro-copy-button">复制
Redirect 301 /eski-sayfanizin-relative-urlsi/ https://www.domainadresiniz.com/yeni-sayfanizin-absolute-urlsi/

如果您的站点有面板或者您正在使用现成的 cms/软件,则无需通过面板中的重定向菜单编写代码即可实现此过程。举一个 WordPress 基础设施的例子,WordPress 中的 301 重定向可以通过 Rank Math SEO、Yoast SEO、All in One SEO 和类似的 SEO 插件来完成,而无需编写代码。但是,对于复杂的重定向,可能需要在 .htaccess 文件中编写特殊代码。作为复杂重定向的示例,我们将分享我们为最常用的重定向编写的代码。

使用 301 重定向所有查询参数

# BEGIN: Redirect non-critical query parameters to the current page with 301 redirect by Onur Özden Web Çözümleri
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !(.*)wp-admin(.*)
RewriteCond %{REQUEST_URI} !(.*)wp-login(.*)
RewriteCond %{REQUEST_URI} !\.(jpe?g|gif|bmp|png|webp|avif|tiff|pdf|mp4|avi|mkv|flv|zip|rar|docx|doc|xlsx|csv|txt|rtf|xml|css|js) [NC]
RewriteCond %{QUERY_STRING} .
RewriteRule ^ %{REQUEST_URI}? [L,R=301]
</ifmodule>
# END: Redirect non-critical query parameters to the current page with 301 redirect by Onur Özden Web Çözümleri

您可以使用上面的代码将所有查询参数重定向回当前 url。示例代码中排除了WordPress的默认登录页面、管理页面等特殊页面以及一些特殊文件类型。您可以根据需要对排除项进行调整。

Htaccess HTTPS 和 WWW 重定向

以 http 方式打开页面,因为即使有 SSL,它们也不会定向到 https 版本,并且即使网站上使用了 www,但发布不带 www 的相同版本的页面是一个大问题,不仅出于技术原因,而且在 SEO 和用户体验方面也是如此。为了解决这个问题,您可以使用以下代码将http url重定向到https,并确保页面仅以www打开。

https://www.%{HTTP_HOST}/$1/ [R=301,L] </ifmodule> # END:通过 Onur Özden Web Çözümleri" style="color:#272822;display:none;background-color:#F8F8F2" aria-label="Copy" data-copied-text="已复制!" data-has-text-button="textSimple" 将所有 URL 重定向至 WWW,并进行 301 重定向data-inside-header-type="headlights" aria-live="polite" class="code-block-pro-copy-button">复制
# BEGIN: Redirect All Urls to WWW with 301 redirect by Onur Özden Web Çözümleri
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1/ [R=301,L]
</ifmodule>
# END: Redirect All Urls to WWW with 301 redirect by Onur Özden Web Çözümleri

.htaccess 文件是使用 WP 永久链接结构自动创建的。如果找不到该文件,您可以通过 ftp 或主机控制面板手动创建一个:

  • 打开记事本。 (或您使用的任何代码编辑器)
  • 粘贴相关代码。
  • 将文件扩展名设置为 .htaccess 而不是 .txt(文本的缩写),并且不指定名称。
  • 将您创建的文件添加到站点的根目录(此目录通常称为 public_html 或 htdocs)。

通过此方法,您可以使用 .htaccess 执行 HTTPS 和 WWW 重定向。

Htaccess HTTPS 重定向

如果您的网站上不使用 www,而只想将 HTTP URL 设为 https,只需将我们为您编写的这些代码添加到您网站的根目录即可。

https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L] RewriteCond %{HTTPS} 关闭 RewriteRule ^ https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L] </ifmodule> # END:通过 Onur Özden Web Çözümleri" style="color:#272822;display:none;background-color:#F8F8F2" aria-label="Copy" data-copied-text="Copied!" 将所有 URL 重定向到 https 和非 www,并进行 301 重定向data-has-text-button="textSimple" data-inside-header-type="headlights" aria-live="polite" class="code-block-pro-copy-button">复制
# BEGIN: Redirect All Urls to https and non-www with 301 redirect by Onur Özden Web Çözümleri
<ifmodule mod_rewrite.c>
# Skip it if the url is correct
RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* - [L]

# https and non-www redirect
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^ https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}/%{REQUEST_URI} [R=301,L]
</ifmodule>
# END: Redirect All Urls to https and non-www with 301 redirect by Onur Özden Web Çözümleri

域名转发

域名转发,在土耳其语中,是将域名及其所有 URL 重定向到新域名的名称。您可以使用以下代码将旧域中的所有 URL 重定向到新域。不要忘记将 olddomain 和 newdomain 值以及域扩展名替换为旧域和新域的名称。

# BEGIN: Redirect All Old Domain Urls to New Domain Urls with 301 Redirect by Onur Özden Web Çözümleri
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^olddomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.olddomain\.com$
RewriteRule ^(.*)$ "https\:\/\/www\.newdomain\.com\/$1" [R=301,L]
</ifmodule>
# END: Redirect All Old Domain Urls to New Domain Urls with 301 Redirect by Onur Özden Web Çözümleri

Htaccess AMP 重定向

如果您在网站上使用过 AMP 一段时间然后将其删除,则由 AMP 编辑的链接可能已在搜索引擎中编入索引。删除 AMP 后,您需要将这些链接重定向回当前状态。否则,搜索引擎结果页面上带有 amp 查询参数的链接将返回 404,用户无法访问该内容。将带 amp 的 URL 更改为不带 amp 的 URL 称为“amp 到非 amp 重定向”。您可以使用以下代码通过 301 代码进行此重定向。

# BEGIN: AMP to NON-AMP Redirect for All Known AMP Variations by Onur Özden Web Çözümleri
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} amp [OR,NC]
RewriteCond %{QUERY_STRING} noamp=mobile [OR,NC]
RewriteCond %{QUERY_STRING} amp=1 [NC]
RewriteRule ^ %{REQUEST_URI}? [L,R=301]
RewriteCond %{REQUEST_URI} (.+)/amp(.*)$ [NC]
RewriteRule ^ %1/ [R=301,L]
</ifmodule>
# END: AMP to NON-AMP Redirect for All Known AMP Variations by Onur Özden Web Çözümleri

WordPress Htaccess 文件

如果您的 WordPress 中的 htaccess 文件已损坏,并且 WordPress 系统添加的默认代码丢失,您可以通过单击“设置”>“永久链接”>“保存”来重新添加 htaccess 代码。如果您无权访问管理面板,您可以打开站点根目录中的 .htaccess 文件并输入以下代码。这些代码仅对安装在子域和域主目录中的 WordPress 站点有效。如果您的站点安装在子文件夹中,则应使用下一个标题中的代码。

# BEGIN WordPress

RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

子文件夹中 WordPress 的 Htaccess 代码

如果您在 WordPress 中的 htaccess 文件已损坏,并且您的网站安装在子文件夹中而不是主目录或子域中,则可以使用以下代码,将它们添加到网站根目录中的 .htaccess 文件中。在代码中,不要忘记将“子文件夹”部分替换为您安装 WordPress 的子文件夹的名称,并将“example.com”部分替换为您的域名。

# BEGIN WordPress

<ifmodule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ subfolder/index.php [L]
</ifmodule>

# END WordPress

您可以使用我们在 .htaccess 文件中为您准备的针对最常见情况创建的重定向代码,以最佳实践执行重定向过程。

常见问题解答


什么是 WordPress 301 重定向?

WordPress 301 重定向是将网站上 URL 已更改、不再使用或已移动的页面重定向到另一个相关页面的名称。 301重定向得名于301代码,即HTTP状态代码。
什么是 htaccess 301 重定向?

301.htaccess重定向是通过将重定向代码写入.htaccess文件来执行301重定向的过程。使用htaccess文件,它被称为“htaccess 301重定向”。
如何进行 WordPress 301 重定向?

您可以使用 Rank Math SEO、Yoast SEO、All in One SEO 等 SEO 插件或 Redirection、301 Redirect 等重定向插件进行 WordPress 301 重定向,而无需代码知识。