wordpress自定义系统生成上传的路径(rewrite与其它站点有冲突)

wordpress自定义系统生成上传的路径(rewrite与其它站点有冲突)

由于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]

至此,大功告成!