Opened 17 months ago

Last modified 17 months ago

#19686 new defect (bug)

404 - File or directory not found

Reported by: kwgagel Owned by:
Priority: normal Milestone: Awaiting Review
Component: Multisite Version: 3.3
Severity: normal Keywords: dev-feedback
Cc:

Description

We are running Wordpress using multiuser with Buddypress. Users are getting the 404 error after they click the save button in their settings.

I'm opening this ticket to report the source of the problem.

Wordpress 3.x
Buddypress 1.5
Windows 2008 R2 (IIS 7.5)

Themes installed are all Buddypress compatible and all themes seem to be affected.
All option pages are affected.
Settings are updated when the user returns to the page - despite the error. A screen shot of the error can be seen at http://blogs.cnc.bc.ca/gagel/?attachment_id=38

The source of the problem appears to be in the wp_get_referer() function on line 164 in options.php. With the variables passed to the function it should redirect the user to the page they just submitted when they updated options. Instead they get the 404 error.

The page they're redirected to appears to be the absolute path of the submitted page appended to the absolute path again (minus the domain). So it looks like this:
userblog/wp-admin/userblog/wp-admin/options-general.php?settings-updated=true

When I switch out the wp_get_referrer() function with the variable $parent_page then the redirect worked as expected.

I'm uncertain about leaving it like this as my change may have introduced issues elsewhere...

This issue is discussed at http://wordpress.org/support/topic/recuring-404-file-or-directory-not-found-error?replies=8#post-2527566

Attachments (1)

phpinfo.pdf (112.5 KB) - added by kwgagel 17 months ago.

Download all attachments as: .zip

Change History (10)

  • Keywords close added

If anything, this would be an issue with BuddyPress (and should be pitched over there). Post about this on buddypress.org first, you'll find more BP-ians.

  • Keywords dev-feedback has-patch removed

OK, thanks. I've opened a ticket there...
http://buddypress.trac.wordpress.org/ticket/3892

The buddypress ticket has been closed as invalid as being a core issue, The linked forum thread claims it's not a core issue.

What file/line number are you altering to correct this? Is it a specific combination of Multisite/BuddyPress, or can you duplicate it on plain MultiSite?
You seem to indicate that wp_get_referer() is returning an absolute path that doesn't work.. What's the path you're seeing? What's the path you expect to see?

Thanks for looking into this more.
This is a multisite/buddypress combo, I don't have a second multisite only to test with right now.

The path that gets returned is: userblog/wp-admin/userblog/wp-admin/options-general.php?settings-updated=true

The path that should be returned is: userblog/wp-admin/options-general.php?settings-updated=true

When you removed the extra userblog/wp-admin from the url and press enter it works.

Version 0, edited 17 months ago by kwgagel (next)

/wp-admin/links.php is a 404 on my site.

However wp-admin/link-add.php (which is the real URL) is fine and I can add links all day long on WordPress 3.3 Multisite with subfolders and subdomains.

On Linux/Apache, mind, I don't have an IIS box.

Ignoring the screenshot in the ticket, as it's for a non-existent file, I'm pretty sure I know the bug in question here.

It's not a Multisite or BuddyPress issue, rather it's a Path issue, the $_SERVER global has incorrect/invalid data for the current-file/referer fields. It's a configuration which I've not yet attempted to reproduce, but I'm pretty sure it's been mentioned before.

Would it be possible to get a var_dump($_SERVER); from the site (one where the referer field is filled in would be appreciated)? the output from phpinfo(); might also help

Similar issues exist for varying paths: #18768 and #10447 - neither are duplicates though.

OK, I've uploaded a pdf showing the results of the information requested.

  • Keywords dev-feedback added; close removed
Note: See TracTickets for help on using tickets.