我怎么才能在一些URL上允许尾随斜杠而不重定向,而在其他URL上不允许呢?

时间:2011-12-12 作者:Craig Sefton

下面是场景。

假设我有一个网站wordpress。具有以下Permalink结构的场地:/%postname%

假设我随后设置了以下职位:

如果有人要键入“wordpress.site/post1/”(额外斜杠),wordpress将自动301将用户重定向到“wordpress.site/post1”。

到目前为止还不错。

但是现在,让我们设想有一个旧的URL“/post4/”,出于SEO的原因,我想为这个URL创建一个帖子and 保留尾部斜杠?

换句话说:

呼叫wordpress。站点/post4/未重定向到wordpress。站点/帖子4,但呼叫wordpress。站点/post4,将重定向到wordpress。site/post4和呼叫wordpress。site/post1不会重定向,但会调用wordpress。站点/post1/将重定向到wordpress。站点/post1我将如何实现这一目标?

我试图使用add\\u rewrite\\u rule()来实现这一点,但似乎无法实现我的目标(我仍然被重定向,是的,我确实刷新了重写规则)。示例代码:

add_action( \'init\', \'my_rewrite_func\' );
function my_rewrite_func()
{
    add_rewrite_rule( \'post4/$\', \'index.php?p=12\', \'top\' );
}
有什么建议吗?

2 个回复
SO网友:stealthyninja

使用flush_rewrite_rules():

add_action( \'init\', \'my_rewrite_func\' );
function my_rewrite_func() {
    add_rewrite_rule( \'post4/$\', \'index.php?p=12\', \'top\' );
    flush_rewrite_rules();
}
和/或您使用的任何重写规则,您都可以使用/? 对于可选的尾部斜杠或force the trailing slash 如果你希望它一直在那里。

SO网友:Simon

我没有使用它,但我听说了很多关于这个插件的事情http://wordpress.org/extend/plugins/redirection/ 这正是针对这种情况。我想你不想使用插件,也许很多源代码可以引导你找到解决方案。

结束

相关推荐