不久前,我离开了Blogger,将我的博客下载到我的系统中。有一段时间,我以虚拟主机的身份在每个博客上主持了他们。后来,我将它们导入WordPress,现在正从WP托管它们。
当我将它们作为虚拟主机本地托管时,我让每个博客都使用一个单独的Apache日志文件,但现在,所有博客都记录到同一个文件中。
我在WordPress中找不到设置,也无法在.htaccess
文件,因为站点是虚拟的。也就是说,WordPress博客实际上并不作为单独的目录位于驱动器上-(此外,日志设置不能用于.htaccess
无论如何)。
如何配置WordPress多重安装,以便一个或多个站点登录到自己的日志文件?
托肖关于使用setenif的第二个建议很有希望。我设法让它在一个单独的日志文件中访问一个站点,并使用下面的指令将其从主日志中删除。
…
<IfModule log_config_module>
…
# I’m re-using the dontlog environment variable because there is no reason to make a special variable (for me), so it avoids having to use an expression (plus, it just makes sense)
SetEnvIf Request_URI "^/blogs" dontlog
SetEnvIf Request_URI "^/blogs/blog1" blog1
SetEnvIf Request_URI "^/blogs/foobar" foobar
…
CustomLog "../Logs/Main/access.log" common env=!dontlog
CustomLog "../Logs/Blogs/blog1.log" common env=blog1
CustomLog "../Logs/Blogs/foobar.log" common env=foobar
…
UnsetEnv dontlog
UnsetEnv blog1
UnsetEnv foobar
</IfModule>
…
这适用于单站点博客,但对于多站点博客,问题在于试图保持事物的整洁并简化添加新博客的过程,因为似乎不可能在日志文件名中使用以下变量,这意味着为每个日志文件名创建单独的条目:
…
<IfModule log_config_module>
…
SetEnvIf Request_URI "^/blogs" dontlog
# Set environment variable to matched regex subexpression corresponding to blog name
SetEnvIf Request_URI "^/blogs(.+/)" blog=$1
…
CustomLog "../Logs/Main/access.log" common env=!dontlog
CustomLog "../Logs/Blogs/%{blog}e.log" common env=blog
…
UnsetEnv dontlog
UnsetEnv blog
</IfModule>
…
最后,我在一个名为
%{blog}e.log
.