只需将 /path/ 301 重定向到 newdomain.com/newpath/

只需将 /path/ 301 重定向到 newdomain.com/newpath/

我在 WordPress 网站上遇到了问题。我想将一些 URL 重定向到新域名。我尝试了:

# BEGIN 301 Redirects
Redirect 301 /old-post/ http://www.newdomain.com/new-post/
# END 301 Redirects

重定向不起作用,因为用户被重定向到:

http://www.newdomain.com/new-post/old-post/

这里是.htaccess

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

有任何想法吗?

答案1

您实际上并没有声明要重定向的 URL?但是,您看到的结果不应该发生在您发布的代码中,除非您请求/old-post/old-post/?(Redirect是前缀匹配,匹配后的所有内容都复制到目标 URL 的末尾。)

但是,由于您已有 mod_rewrite 指令,因此您应该使用 mod_rewrite 而不是 mod_alias 进行重定向 - 以避免潜在的冲突。mod_rewrite 指令将在 mod_alias 之前得到处理,而不管文件中指令的明显顺序如何.htaccess。即,首先重写 URL /index.php,然后 mod_alias 根据初始请求进行重定向。

你应该做类似下面的事情现有的 WordPress 指令(即该# BEGIN WordPress部分之前):

RewriteRule ^old-post/$ http://www.newdomain.com/new-post/ [R=301,L]

请注意,RewriteRule 图案

您需要在测试之前清除浏览器缓存。

相关内容