我需要向我的站点添加重写规则。我试过了。htaccess运气不佳,无法解析,所以我几乎放弃了。我找到了关于add\\u rewrite\\u规则的文档,但不知道应该在哪里使用它。我不是在写插件。我需要加入一条简单的规则。
我去参加了各种活动。当前主题文件夹中的php文件。这是我用的吗?我插入以下内容:
add_action( \'init\', \'add_news_rule3\' );
function add_news_rule3()
{ add_rewrite_rule( \'^/content/([^/]*)/([^/]*)\\.htm$\', \'/content/$matches[1] [NC,R=301,L]\', \'top\' ); }
根据我在其他地方看到的帖子,我也尝试过:
add_action( \'generate_rewrite_rules\', \'add_news_rule\' );
function add_news_rule($wp_rewrite)
{ $new_rules = array(\'^/content/([^/]*)/([^/]*)\\.htm$\' => \'/content/$matches[1] [NC,R=301,L]\');
$wp_rewrite->rules = $new_rules + $wp_rewrite->rules; }
add_filter(\'rewrite_rules_array\',\'add_news_rule2\');
function add_news_rule2($rules)
{ $new_rules = array(\'^/content/([^/]*)/([^/]*)\\.htm$\' => \'/content/$matches[1] [NC,R=301,L]\');
return $new_rules + $rules; }
最合适的回答,由SO网友:Milo 整理而成
add_rewrite_rule
用于将URL结构转换为查询变量,并通过index.php
, 您不能像在htaccess重写中那样指向其他URL并使用标志。
对于您想要实现的目标,通过htaccess实现是最简单的方法。如果只删除前导斜杠,则规则应该有效:
RewriteRule ^content/([^/]+)/([^/]+)\\.htm$ /content/$1/ [NC,R=301,L]
如果您使用的是相当长的永久链接,则需要在任何WordPress重写之前执行此操作,否则将永远无法达到此规则。