wordpress中的自定义.htaccess重写规则未执行

时间:2016-01-20 16:06:43

标签: wordpress apache .htaccess

问题:

我希望能够在wordpress中修改插件的url查询字符串参数,并获取原始网址;

/wp-admin/admin.php?page=espresso_events

并且能够通过;

访问它

/wp-admin/admin.php?page=events

据我所知,我的.htaccess文件中的所有内容都是正确的,但由于某种原因它仍然无法正常工作。然而规则看起来很好,所以当我尝试通过新网址访问页面时,我无法理解为什么wordpress会给我一个错误。

这是我的.htaccess文件;

RewriteEngine On
RewriteBase /event_espresso/
RewriteRule ^index\.php$ - [L]
RewriteCond %{QUERY_STRING} ^(.*)events(.*)$
RewriteRule . wp-admin/admin.php?%1espresso_events%2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /event_espresso/index.php [L]

使用this在线工具,它为我提供了正确的输出网址,但是当我在wordpress中直接尝试输入网址时,我每次都会得到相同的错误;

  

您没有足够的权限来访问此页面。

修改

这绝对是一个wordpress问题。当我手动更新我的.htaccess文件时,一切正常,但是,当使用mod_rewrite_rules过滤器时,wordpress似乎没有将规则写入我的.htaccess文件或执行它们。我对.htaccess文件拥有完全写入权限。

1 个答案:

答案 0 :(得分:0)

此问题现已解决。我没有通过我的插件正确刷新重写规则,所以我的重写规则甚至没有被添加到.htaccess文件中。

function plugin_activate()
{
    //make sure rewrite rules are flushed so the htaccess is written to
    global $wp_rewrite;
    $wp_rewrite->flush_rules();
}

register_activation_hook(__FILE__, 'plugin_activate');
//actions..