Support » Alpha/Beta/RC » Multisite image path error

  • Resolved aizik

    (@aizik)


    Hi

    Upgraded from 2.9 to 3.0 b2. Everything seems to be working fine except that newly uploaded images are not displayed.

    The generated url for a new image is (what appears in the source code for a page):
    http://site.com/files/2010/05/image.jpg

    The image appears broken.

    Opening the following address does works:
    http://site.com/wp-content/files/2010/05/image.jpg

    The images are uploaded to the correct directory the only problem is with the “/wp-content/” added to the url.

    Any ideas? Thanks!

    ps. I have to sites, both showing the same problem. The first one was converted, the second one is new. Also, I started with subdomains and then changed to subdirectories. To change to subdirectory I modified wp-config and htaccess.

Viewing 15 replies - 1 through 15 (of 36 total)
  • I have the same problem both on upgraded wpmu sites and virgin 3.0 multisite setups.

    Actually it should not be /wp-content/files/…

    We are completely missing the /wp-content/blogs.dir/blogid/files path creation.

    So all sub domain sites from upgrade are going to be broken image paths even with the wp-content added in.

    It’s like the entire directory process is screwed up when enabling multisite in 3.0

    No, it SHOULD be /files 🙂

    In your .htaccess, you should have this:

    # uploaded files
    RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

    And that should redirect you just fine.

    Check that your full .htaccess is something like this:

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    
    # uploaded files
    RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
    
    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    RewriteRule . index.php [L]
    </IfModule>
    # END WordPress

    (I’m using subfolders, not subdomains FYI)

    @ipstenu
    Thanks, turns out I had the ‘generic’ htaccess file.

    I guess that I am just used to running wpmu with the /blogs.dir/blogid/ system path.

    With 3.0 now it seems that all the files are simply saved into the /wp-content/uploads folder, which seems really strange to me. Wondering how wp is going to separate out all the files for different sub domain sites without those folders. Suppose I’ll soon find out.

    thanks again.

    The files are saved to /wp-content/blogs.dir on my server for multisite. That said, all my OLD files, from before MSing, were back on /uploads/ so I had to do some fakery and SQL queries to move them. But. Most people are probably not going from ‘Massive established single site’ and into ‘multiple sites!’

    Actually, having done it, I would tell people NOT to do it unless you have to. 🙂

    Unfortunately for me I do have a massive single-install wp (30k members, large amt of posts/media/forum posts) that is going to become a multisite 3.0 install when 3.0 goes final.

    I also have a few wpmu sites that will become multisite3.0.

    Finally I have a few new installs of 3.0 where I am playing around. I’ve noticed that as soon as I switch on multisite, that the folders are remaining the same. Even though I manually create the blogs.dir as specified, files still are saved in /files/

    I’m just glad that I am doing very extensive testing in many situations prior to upgrading all my client and personal sites. So far it’s nowhere near as smooth as I’m sure wp plans it to be.

    The MU to MS ones will be easy. I did that and they had no issues, no files, etc.

    Finally I have a few new installs of 3.0 where I am playing around. I’ve noticed that as soon as I switch on multisite, that the folders are remaining the same. Even though I manually create the blogs.dir as specified, files still are saved in /files/

    Are the files actually saved in the /files/ directory, or is that just where the image URLs point to?

    At a wild guess, if you create a single site, configure etc, use it and THEN switch to multi, you may need to ‘fix’ the folders to blogs.dir.

    Either way, on MS, your URL will always say ‘files’.

    Unfortunately for me I do have a massive single-install wp (30k members, large amt of posts/media/forum posts) that is going to become a multisite 3.0 install when 3.0 goes final.

    It can be done, it’s just a pain. If you’re good with SQL and htaccess, it’s no so bad. I had to move from a custom upload folder to blogs.dir, which involved a lot of copying files and then running SQL commands to fix posts after I ran the upgrade on the ‘main’ blog.

    Then I imported the child blogs as import/export and ran the SQL fixes again for that blog.

    My htaccess file seems fine, so my problem should be something else. Here is my htaccess

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ – [L]

    # uploaded files
    RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]

    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ – [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    RewriteRule . index.php [L]

    My guess is that it could be something in the site option. I was thinking that the upload path (although the files are being uploaded to the correct directory, just not displaying)
    My Upload Path is:/public_html/intranet/files/ (intranet is where wordpress is installed)

    Go into Network Settings -> Sites and click on EDIT for your blog.

    The URL will be something like http://domain.com/intranet/wp-admin/ms-sites.php?action=editblog&id=1

    Scroll down to Upload Path and see what’s in there. It SHOULD be wp-content/blogs.dir/1/files

    And that’s okay 🙂

    value is: wp-content/uploads

    I also can confirm that I do have mulsites=yes, and do have the option of adding sites.

    Somewhere along the line during install, something must have gone terribly wrong.

    Thankfully this is only my sandbox site, but at least it shows me that I need to try a fresh install again, prior to even thinking about moving ‘live’ sites to 3.0. I should make sure, triple check, that the data paths are now being setup correctly in 3.0 when switching to multi.

    It’s just to bad that 3.0 does not give option during install for multi, where it could then make sure all file changes are made and directories are created properly before the db is even populated. Would have been much cleaner then.

    Obviously you can change it manually, but. That’s beside the point!

    If it happens a second time, I’d open up a trac ticket and detail exactly, down to the gnat’s backside, how you installed and what you did BEFORE switching to MultiSite.

    Changed the upload path to wp-content/blogs.dir/1/files

    The files are uploaded to the right directory

    Still do not display (actually they display ok in Chrome, the browser I used to upload them, but not in any other browser).

    http://intranet.mayoreoelectrico.com/files/2010/05/mem_small.png does not display
    http://intranet.mayoreoelectrico.com/wp-content/files/2010/05/mem_small.png works

    Both links are 403 (Forbidden) for me.

    Actually, so is http://intranet.mayoreoelectrico.com/

    Re the email… His site’s blocked by IP, which makes sense since it’s internal only! 🙂

    It really wouldn’t matter if I saw it or not. I was just wondering what the actual error messages were (sometimes looking at a blog helps click things).

    Anyway. What plugins are you running? Is that the FULL .htaccess?

    I’m not sure why it wouldn’t parse unless it can’t ‘see’ files, which is very odd. If I put /wp-content/ into my image URL, it redirects to /files/ so you’ve got to be missing something…

    Yes, the site is blocked by IP, I posted the link for reference only as an example…

    Why could it be that the file path with wp-content is working but not without it?

    I’ve gone through the htaccess and it seems ok, also the Upload Path site option and the files are uploading correctly.

    Is there anything else in the .htaccess that might be conflicting?

Viewing 15 replies - 1 through 15 (of 36 total)
  • The topic ‘Multisite image path error’ is closed to new replies.