WordPress 302重定向至保留页面

时间:2014-06-03 作者:Kevin Nugent

再次与htaccess抗争。我已使用以下规则成功地将主页重定向到我的保留页,但由于某种原因,它不适用于子页(mydomain.com/child-page)。

# MAINTENANCE-PAGE REDIRECT
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{REQUEST_URI} !/holding [NC]
 RewriteCond %{REQUEST_URI} !\\.(jpe?g?|png|gif|eot|svg|ttf|woff|css) [NC]
 RewriteRule ^(.*)$ /holding [R=302,L]
</IfModule>
我做错了什么?我知道这一定与“^(.*)$”位有关,但我可以;似乎找不到正确的语法。

2 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

我会将重定向放在WordPress中。它为您提供了更多的控制,您无需担心WP与您自己的冲突.htaccess 继续重写。

function wpse_147377_redirect_to_holding() {
    if ( ! is_page( \'holding\' ) ) {
         wp_redirect( site_url( \'holding\' ) );
         exit;
    }
}

add_action( \'template_redirect\', \'wpse_147377_redirect_to_holding\' );
将其放置在“必用”插件中(wp-content/mu-plugins/my-plugin.php), 常规插件,或您的主题functions.php.

SO网友:Kevin Nugent

好的,谢谢你为我指出了正确的方向@死亡医生。我发现一个整洁的条件是this thread 这就像一个魔咒,还有一个额外的好处就是检查用户是否登录。

if ( trim( $_SERVER[\'REQUEST_URI\'], \'/\' ) != \'holding\' && ! is_user_logged_in() ) {
    wp_redirect( home_url( \'holding\' ), 302 );
    exit;
}

结束

相关推荐

Redirect after post deleted

在单个模板上,我使用由get\\u delete\\u post\\u link函数生成的delete post链接。当我使用链接删除我当前所在的帖子时,它会添加一个查询字符串?垃圾=1(&;ids=10,但正如预期的那样,该页面会生成404错误,因为该帖子现在已经不存在了。我只是想知道是否有人知道我可以用来检测帖子何时被删除的操作/过滤器,所以我会在之后将页面重定向到其他地方?谢谢