htaccess + wordpress 不工作

htaccess + wordpress not working

我正在使用更新的 WP,我正在尝试将旧的 url 重定向到新的 url:

Redirect 301 /es/ http://www.example.com
Redirect 301 /es/tienda/ http://www.example.com
Redirect 301 /es/categoria-producto/quillas/center http://www.example.com/categoria/quillas-single/

这是我在浏览器中得到的:

如果我尝试访问第一个 URL,我会重定向到:

http://www.example.comtienda/

是的,它缺少斜杠。

如果我尝试访问另一个 URL 我会重定向到:

http://www.example.com/categoria-producto/quillas/center/

这是一个 404...

所以,考虑到服务器错误,我迁移了网站,但问题仍然存在...

我做错了什么?

Redirect 301 /es/ http://www.example.com
Redirect 301 /es/tienda/ http://www.example.com
Redirect 301 /es/categoria-producto/quillas/center http://www.example.com/categoria/quillas-single/

由于 mod_alias Redirect 指令是前缀匹配,您需要反转这些指令。但是您缺少目标 URL 末尾的斜杠,所以这就是缺少斜杠的原因。所以,例如:

Redirect 301 /es/categoria-producto/quillas/center/ http://www.example.com/categoria/quillas-single/
Redirect 301 /es/tienda/ http://www.example.com/
Redirect 301 /es/ http://www.example.com/

如果源上有斜线 URL,则目标上也应该有斜线。

但是,由于这是一个 WordPress 网站,您应该改用 mod_rewrite。例如,在您现有的 WP 指令之前:

RewriteRule ^es/categoria-producto/quillas/center$ /categoria/quillas-single/ [R=301,L]
RewriteRule ^es/tienda/$ / [R=301,L]
RewriteRule ^es/$ / [R=301,L]

在这种情况下,指令的顺序无关紧要。