问得好!
稍微想想,这似乎是可行的(更进一步的测试和更合格的外观非常受欢迎:)。仅在带有子域的localhost开发安装中测试。没有域映射。
更改以下内容.htaccess
重写规则:
# uploaded files
# RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
RewriteRule ^files/(.+) dl-files.php?file=$1 [L]
复制
/wp-includes/ms-files.php
然后把它放在根上
dl-files.php
.
使残废SHORTINIT
, 修改wp-load.php
路径并添加current_user_can()
从一开始就检查,因此它变成:
<?php
/**
* Modified Multisite upload handler.
*
* @since 3.0.0
*
* @package WordPress
* @subpackage Multisite
*/
//define( \'SHORTINIT\', true );
require_once( \'wp-load.php\' );
if( !is_multisite() )
die( \'Multisite support not enabled\' );
if( !current_user_can( \'subscriber\' ) ) {
status_header( 403 );
die( \'403 — Forbidden.\' );
}
ms_file_constants();
/* ... rest of the original file ... */
请注意,删除
SHORTINIT
增加加载时间和内存消耗。阅读
somewhere 可能会增加十倍(!?)。
wp edu列表中的有趣讨论(在wp黑客中未发现任何内容):