以下规则对我适用
RewriteRule ^(foo)($|/) - [L]
也就是说,任何以foo开头的路径,比如foo、foo、bar等等,都会指向Apache 404,而不是主题404;假设没有具有该路径的实际目录。
规则必须位于WordPress块的最后一个标准行之前:
RewriteRule . /index.php [L]
如果是在
RewriteBase /
, 它可以在它之前;我之前只是草率地、草率地说了几句。
这样你就有机会离开# BEGIN WordPress
和# END WordPress
如果你愿意的话,请不要动。通过放置
<IfModule mod_rewrite.c>
RewriteRule ^(foo)($|/) - [L]
</IfModule>
在前面
# BEGIN WordPress
.
您可能想阻止在WordPress中创建路径,我想到了这一点:
add_filter( \'wp_unique_post_slug\', \'no_more_foo_wp_unique_post_slug\', 2, 6 );
function no_more_foo_wp_unique_post_slug(
$slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug
) {
if ( $post_parent === 0 ) {
$pattern = \'/^foo$/\';
$replace = \'bar\';
$slug = preg_replace( $pattern, $replace, $slug );
}
return $slug;
}