HTAccess 301重定向不适用于WordPress站点

时间:2018-04-11 作者:Beau Beau

我正在尝试使用设置一些301重定向。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
# BEGIN 301 Redirects
Redirect 301 /about-us/ http://www.newsite.com/new-page/about-us/
# END 301 Redirects
有人能解释一下为什么我的Wordpress网站可能无法做到这一点吗?

3 个回复
SO网友:Mark Kaplun

一般来说,在PHP端处理重定向要好得多。(假设is是由半胜任的开发人员实现的)它更灵活,使用的开销更少。

具体到这个问题,wordpress规则集将处理all URL,因此您的规则太晚了,您应该将其移动到wordpress规则之前。

SO网友:Tejas

尝试使用以下代码:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^old-page-name(/.*)?$ https://www.myurl.com/new-page-name/ [L,R=301,NC]

RewriteRule ^another-old-page(/.*)?$ https://www.myurl.com/another-new-page/ [L,R=301,NC]

RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

SO网友:gintsg

对于此类重定向,我建议使用以下插件:https://wordpress.org/plugins/redirection/ 它易于使用,甚至支持高级REGEX重定向。

我个人使用了。htaccess文件只用于更高级和与域相关的重定向,即域规范化。

但如果你真的想在中重定向。htaccess文件,下面是您需要如何执行此操作:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# BEGIN 301 Redirects
Redirect 301 /about-us/ http://www.newsite.com/new-page/about-us/
# END 301 Redirects
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

结束