重写/重定向WordPress外部的请求

时间:2016-11-29 作者:pixeline

我需要Wordpress将匹配特定url结构的请求重定向到索引以外的其他脚本。php。

我使用的是nginx,所以我不能简单地在中添加重写规则。htaccess文件,也无权访问服务器配置文件。所以我想我唯一的选择是从WordPress内部进行。

我尝试了以下方法,然后保存了设置>永久链接以刷新重写规则,但它不起作用。

function rewrite_action() {
    add_rewrite_tag(\'%template%\', \'([^/]*)\');
    add_rewrite_tag(\'%title%\', \'([^/]*)\');
    add_rewrite_rule( \'^partners/([^/]*)/?\', \'partners-output.php?template=$matches[1]\', \'top\');
    add_rewrite_rule( \'^partners/([^/]*)/([^/]*)$?\', \'partners-output.php?template=$matches[1]&title=$matches[2]\', \'top\');
}


add_action( \'init\', __NAMESPACE__ . \'\\rewrite_action\', 1, 0 );
现在,它只返回WordPress的404页。

1 个回复
SO网友:Fabian Marz

通常,要在Wordpress中添加重写规则generate_rewrite_rules 滤器从那里可以调用函数add_external_rule ($wp_rewrite->add_external_rule($rule)) 您可以在其中添加未映射到的规则index.php. 不幸的是,Wordpress将尝试将此规则写入.htaccess 文件但也许this 可能会有帮助。

相关推荐

有没有可能将代理WP MULTISE反向转换为具有Nginx的单独服务器?

最近迁移了一个多站点网络,却发现一些站点使用的主题与服务器的PHP版本不兼容。虽然我正在进行长期修复,但我希望使用NGINX将非工作站点反向代理到旧服务器,同时保持当前工作站点指向新服务器。当我尝试以下操作时,我能够访问旧站点的页面,但静态资产(js、css等)返回404,并且我无法访问任何/wp管理页面。我应该改变什么?这是整个服务器块配置。保存为location /oldsite, 我也将此配置用于其他服务器块。在这种情况下,我的所有WordPress文件都存储在各自独立的/wordpress/ 目录