微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我不能做这个 301 wordpress 重定向

如何解决我不能做这个 301 wordpress 重定向

我需要将我所有 250 万个页面从我的网站重定向添加一个栏的 URL。

例如:

https://www.example.com/my-url-is-here/perfil

https://www.example.com/enterprise/my-url-is-here/perfil

htaccess 或 PHP 标头?

解决方法

因此,您需要在 URL 路径的开头添加 /enterprise。我假设您需要排除以其他方式映射到静态文件(如图像、CSS、JS 和 WordPress 前端控制器 index.php 本身)的请求。在您的 .htaccess 文件顶部添加以下内容:

RewriteCond %{REQUEST_URI} !\.\w{2,4}$
RewriteRule !^enterprise https://www.example.com/enterprise%{REQUEST_URI} [R=301,L]

上述说明,如果请求的 URL-path 不以 /enterprise 开头且不以文件扩展名结尾,则重定向,在 URL-path 前加上 /enterprise。>

我假设所有静态资源都包含标准文件扩展名(.css.js.png 等),并且您的 WordPress 网址看起来没有文件扩展名,例如。不是 .html 等形式。这种简单的模式匹配避免了更昂贵的文件系统检查。

包括完整的规范 URL(即 https://www.example.com/)以避免在请求非规范 URL 时进行多次重定向。

首先使用 302(临时)重定向进行测试,以避免潜在的缓存问题。

更新#1:

我不需要重定向整个网站,只需要重定向以 /perfil/perfil/amp 结尾的网址

在这种情况下,您可以添加另一个条件来匹配这些网址。例如:

RewriteCond %{REQUEST_URI} !\.\w{2,4}$
RewriteCond %{REQUEST_URI} /perfil(/amp)?$
RewriteRule !^enterprise https://www.example.com/enterprise%{REQUEST_URI} [R=301,L]

更新#2:

仍有一些网址我想通过添加 /enterprise 来重定向,但这些网址没有终止 /perfil/amp 示例:example.com/my-url-is-here 并且我想被重定向到:example.com/enterprise/my-url-is-here/perfil

这些似乎是“特殊情况”,因此您需要为每个“特殊”网址添加单独的指令。

例如,可以在上面的规则之前或之后放置以下内容:

RewriteRule ^my-url-is-here$ https://www.example.com/enterprise/$0/perfil [R=301,L]

$0 是对与 RewriteRule pattern 匹配的整个 URL 路径的反向引用。

更新#3:

...所有网址必须包含以下字词 /enterprise/my-url-is-here/perfil/enterprise/my-url-is-here/perfil/amp

如果必须重定向所有 URL,那么是的,您可以实施单个规则。但是,您显然不能重定向到 .../perfil .../perfil/amp - 您需要决定其中之一。

例如:

RewriteCond %{REQUEST_URI} !^/(enterprise|perfil)(/|$)
RewriteRule ^([\w-]+)/?$ https://www.example.com/enterprise/$1/perfil [R=301,L]

以上重定向所有对单个路径段 URL 的请求,其中该路径段只能由字符 a-zA-Z0-9_(下划线)组成或 -(连字符)并重定向到 /enterprise/<url>/perfil 形式的 URL。

它将重定向 /foo/foo/,但不会重定向 /something/foo/foo/something/enterprise/perfil(如果它们可能是有效请求) ?).

$1 反向引用包含捕获的 URL 路径减去尾部斜杠(如果有)。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。