通过mod_rewrite_rules筛选器在多站点上添加其他非重写.htaccess指令

时间:2015-12-12 作者:flowdee

根据上的示例Adding your own .htaccess contents via WordPress 可以扩展。通过主题/插件访问htaccess文件。例如:

<?php
function my_htaccess_contents( $rules )
{
$my_content = <<<EOD
\\n # BEGIN My Added Content
# Protect wpconfig.php
<Files wp-config.php>
    Order Allow,Deny
    Deny from all
</Files>
# END My Added Content\\n
EOD;
    return $my_content . $rules;
}
add_filter(\'mod_rewrite_rules\', \'my_htaccess_contents\');
将导致以下情况。htaccess文件:

# BEGIN My Added Content
# Protect wpconfig.php
<Files wp-config.php>
    Order Allow,Deny
    Deny from all
</Files>
# END My Added Content

RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
但不幸的是,它不适用于多站点。

有什么建议如何处理这个问题吗?

1 个回复
SO网友:gabrielperezs

没有内置的方法可以做到这一点。这个htaccess是您正在设置多站点的wp admin的“打印在屏幕上”(wp config.php也是如此)。这些信息永远不会直接写入。htaccess文件类似于单个站点。

多站点/htaccess的wordpress核心代码如下:https://github.com/WordPress/WordPress/blob/703d5bdc8deb17781e9c6d8f0dd7e2c6b6353885/wp-admin/includes/network.php#L543

相关推荐

使用WordPress MultiSite(WPMS),每个创建的站点都有一个远程数据库

所以,我很想找到一种方法,为每个新添加的子站点使用具有不同远程数据库的WPM。我所知道的。我知道远程数据库可以位于其自己的服务器上,以允许远程站点连接使用DB用户的附加权限,并以%通配符的形式将IP绑定到DB或IP地址(如果您的服务器是网络的一部分)。请参见:https://www.digitalocean.com/community/tutorials/how-to-set-up-a-remote-database-to-optimize-site-performance-with-mysql或对我来说