如何解决我不能做这个 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-z
、A-Z
、0-9
、_
(下划线)组成或 -
(连字符)并重定向到 /enterprise/<url>/perfil
形式的 URL。
它将重定向 /foo
或 /foo/
,但不会重定向 /something/foo
或 /foo/something
或 /enterprise
或 /perfil
(如果它们可能是有效请求) ?).
$1
反向引用包含捕获的 URL 路径减去尾部斜杠(如果有)。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。