由于wordpress的rewrite规则与服务器上的另一个网站的某个路径冲突,所用的ISAPI_rewrite又是LITE版本无法分网站设置htaccess。所以琢磨了一天,终于改成了。
期间在搜索资料的时间,看到老外曾经发的一个WordPress Trac:
http://groups.google.com/group/wp-trac/browse_thread/thread/8b187769429c4ff5
虽然该Trac最后还是没有处理而关闭,并没有给我一个解决的办法,但是我还是从中得知了关键的一个function的名字。其实这个问题关闭也是在情理之中,毕竟这种冲突在九成九的情况下不可能发生的。
不过这应该是一个逻辑问题,无技术无关。在开启多站点的情况下,系统会有意忽略我们为站点设置过的fileupload_url参数,在生成路径的时候强制替换成files,我猜这应该也与将来生成统一的rewrite规则有关,肯定不可能给用户随便去设置。
找到:wp-includesfunctions.php (3.3.1为2259行)
改掉就行了。
最后当然是去改你的rewrite规则:
RewriteRule ^([_0-9a-zA-Z-]+/)?files
/(.+) wp-includes/ms-files.php?file=$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?userfiles
/(.+) wp-includes/ms-files.php?file=$2 [L]
至此,大功告成!