是否在停用插件时删除.htaccess部分?

时间:2013-02-23 作者:unfulvio

我有一个插件,可以在中插入一些重写规则。htaccess文件。然而,停用后,不会删除所述规则。规则嵌套在# BEGIN My plugin# END My plugin.

我想创建卸载。此插件的php文件,以删除在acrivation上创建的规则。

我以前从未这样做过。我想我能拿到。htaccess with

$htaccess = dirname(__FILE__) . \'/../../../.htaccess\';
我是否应该使用正则表达式,或者是否有适当的方法从中删除特定规则。htaccess?

2 个回复
最合适的回答,由SO网友:s1lv3r 整理而成

如何添加重写规则?

如果您手动添加它(打开.htaccess并在php中自己添加行),那么您也应该手动删除它。正如您所建议的那样,最好的方法是使用regex。

如果重写规则是通过Wordpress API使用add_rewrite_rule() 您可以使用flush_rewrite_rules(). 您可以这样使用它:

register_activation_hook( __FILE__, \'myplugin_activate\' );

function myplugin_deactivate() {
   global $wp_rewrite;
   unset($wp_rewrite->non_wp_rules[\'the-string-you-passed-as-param-to-add-rewrite-rule\']);
   flush_rewrite_rules();
}
register_deactivation_hook( __FILE__, \'myplugin_deactivate\' );

SO网友:Mark Kaplun

按照插件卸载过程的工作方式,这类事情无法完成,因为您需要获得凭据才能写入。htaccess在执行卸载之前,不能将卸载过程分为几个阶段。只有当插件仍然处于活动状态时,才能实现这种功能。

结束

相关推荐

HTAccess-与URL子目录名称不同的Server子目录

我有一个客户有一个奇怪的设置,我不太清楚,我想这里可能有人知道答案。我不确定他们是否希望共享该网站,因此我将使用example.com 为了便于解释。他们的wordpress URL设置如下http://example.com/blog.然而,在服务器(Apache)上,实际文件夹称为“wordpress”,而不是“blog”。这个.htaccess 位于“wordpress”文件夹中(完整服务器路径为/var/www/wordpress/) 看起来是这样的:# BEGIN WordPress &