所以我不知道为什么RewriteRule
为您返回了404错误,因为我已经对其进行了测试,它确实按预期工作-如果实际启用了永久链接,您将被重定向到实际的post-permalink。
这是我的.htaccess
文件:
RewriteEngine On
RewriteRule ^go/(\\d+)$ /?p=$1 [R=302,L]
# 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
也就是说,我将自定义重写规则置于WordPress重写规则之上。这样,即使WordPress永久链接被更新,您的自定义规则也会工作并保持不变。
尽管如此,您也可以使用parse_request
要获得相同的结果(即重定向),请执行以下操作:
add_action( \'parse_request\', function( $wp ){
if ( preg_match( \'#^go/(\\d+)$#\', $wp->request, $matches ) ) {
if ( $matches[1] && get_post( $matches[1] ) ) {
wp_redirect( get_permalink( $matches[1] ) );
exit;
}
}
}, 0 );