• Since the WordPress 4.1.1 update last night, I cannot log on to a mapped domain admin Dashboard interface anymore. This worked perfectly yesterday, when I set it up in my test environment.

    In my test environment, only cookies of my DOMAIN_CURRENT_SITE domain are set, and not for the mapped domain. The WordPress log on page cries:

    ERROR: Cookies are blocked or not supported by your browser. You must enable cookies to use WordPress.

    right…

    I’ve removed and re-added the WordPress MU Domain Mapping plugin (both domain_mapping.php in mu-plugins, and sunrise.php) to no avail.

    The hosting is on IIS 8 (which shouldn’t matter), and my web.config has the following contents:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    	<system.webServer>
    		<rewrite>
    			<rules>
    				<rule name="WordPress Rule 1" stopProcessing="true">
    					<match url="^index\.php$" ignoreCase="false" />
    					<action type="None" />
    				</rule>
    				<rule name="WordPress Rule 2" stopProcessing="true">
    					<match url="^wp-admin$" ignoreCase="false" />
    					<action type="Redirect" url="wp-admin/" redirectType="Permanent" />
    				</rule>
    				<rule name="WordPress Rule 3" stopProcessing="true">
    					<match url="^" ignoreCase="false" />
    					<conditions logicalGrouping="MatchAny">
    						<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
    						<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
    					</conditions>
    					<action type="None" />
    				</rule>
    				<rule name="WordPress Rule 4" stopProcessing="true">
    					<match url="^(wp-(content|admin|includes).*)" ignoreCase="false" />
    					<action type="Rewrite" url="{R:1}" />
    				</rule>
    				<rule name="WordPress Rule 5" stopProcessing="true">
    					<match url="^([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" />
    					<action type="Rewrite" url="{R:2}" />
    				</rule>
    				<rule name="WordPress Rule 6" stopProcessing="true">
    					<match url="." ignoreCase="false" />
    					<action type="Rewrite" url="index.php" />
    				</rule>
    			</rules>
    		</rewrite>
    	</system.webServer>
    </configuration>

    and in my wp-config.php:

    define( 'WP_ALLOW_MULTISITE', true );
    
    define('MULTISITE', true);
    define('SUBDOMAIN_INSTALL', true);
    define('DOMAIN_CURRENT_SITE', 'internal.site.example.com');
    define('PATH_CURRENT_SITE', '/');
    define('SITE_ID_CURRENT_SITE', 1);
    define('BLOG_ID_CURRENT_SITE', 1);
    
    define( 'SUNRISE', 'on' );

    Setting it up yesterday, I followed http://ottopress.com/2010/wordpress-3-0-multisite-domain-mapping-tutorial/.

    Any idea?

    https://wordpress.org/plugins/wordpress-mu-domain-mapping/

Viewing 9 replies - 1 through 9 (of 9 total)
  • supermango

    (@supermango)

    Have you been able to resolve this issue? If so, can you please respond with the solution.

    Thread Starter Jan Reilink

    (@janr)

    Unfortunately not.

    I haven’t had the time to look at it again, since was just a test set-up. However, I’ve planned some time to set up a new multi-site environment for two of my live sites, so maybe I have some additional information soon.

    supermango

    (@supermango)

    That’s great. I’m facing the same issue. Do respond if you have been able to get past the issue.

    supermango

    (@supermango)

    Have you tried changing rule #4

    From R:1 to R:2–> <action type=”Rewrite” url=”{R:2}” />

    lernerconsulting

    (@lernerconsult)

    Have you enabled cookies for both the unmapped and mapped domains? Login won’t work with cookies blocked, like that message says.

    You should also delete the existing login cookie. (Don’t delete all cookies for the domain(s) which sometimes triggers the browser to block cookies for the domain.) Old cookies may no longer be valid.

    Log in to the domain WordPress is installed in (not a mapped domain).

    Go to the Domain Mapping Settings page /wp-admin/network/settings.php?page=dm_admin_page , and set them. (If they look right, click and unclick one so there “is a change”) and Save them.

    Then do an Upgrade Network (just like you should do for every update of the WordPress core files).

    You also have to follow this if you update the version of the Domain Mapping plugin; the list of settings themselves sometimes change.

    If you’ve been messing with your web.config, you’ve probably messed it up. This is from a functioning Multi-Site installation, in Subdomain mode. But be very careful; syntax errors or putting this in the wrong place will crash your account; if quotation marks get mangled in this board, you will crash your account. You can not, for example, have two system.webServer tags, so paste the rules inside that section.

    <system.webServer>
        <rewrite>
    	<rules>
    		<clear />
    
    <!-- security stuff taken out -->
    
    <!-- Start of WORDPRESS Rules -->
    		<rule name="WordPress Rule 1" stopProcessing="true">
    			<match url="^index\.php$" ignoreCase="false" />
    			<action type="None" />
    		</rule>
    		<rule name="WordPress Rule 2" stopProcessing="true">
    			<match url="^wp-admin$" ignoreCase="false" />
    			<action type="Redirect" url="wp-admin/" redirectType="Permanent" />
    		</rule>
    		<rule name="WordPress Rule 3" stopProcessing="true">
    			<match url="^" ignoreCase="false" />
    			<conditions logicalGrouping="MatchAny">
    				<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
    				<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
    			</conditions>
    			<action type="None" />
    		</rule>
    		<rule name="WordPress Rule 4" stopProcessing="true">
    			<match url="^(wp-(content|admin|includes).*)" ignoreCase="false" />
    			<action type="Rewrite" url="{R:1}" />
    		</rule>
    		<rule name="WordPress Rule 5" stopProcessing="true">
    			<match url="^([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" />
    			<action type="Rewrite" url="{R:2}" />
    		</rule>
    		<rule name="WordPress Rule 6" stopProcessing="true">
    			<match url="." ignoreCase="false" />
    			<action type="Rewrite" url="index.php" />
    		</rule>
    
    <!-- End of WordPress Rules -->
    
    		</rules>
    
    	</rewrite>
    
    <!-- custom error page stuff and MIME Type stuff removed -->
    
       </system.webServer>
    Thread Starter Jan Reilink

    (@janr)

    supermango and George Lerner, thank you for replying. Please bear with me on this one πŸ™‚

    The problem I described in the previous posts was in an internal test-environment. Now I brutally migrated two of my WordPress sites to a multisite; saotn.org and itfaq.nl. Time to break stuff to get to the bottom of this πŸ˜‰

    One thing I did different now, as opposed to last time, is I installed the WordPress MU Domain Mapping plugin through the WordPress Dashboard, as where I used the “mu-plugin” method the previous time. The process wasn’t much different, and after setting up my sites ( http://www.saotn.org as ID 1, and http://www.itfaq.nl as ID 3, after deleting the site once ), I couldn’t log in and the Chrome Webmaster tools showed my a cookie conflict. The cookie was still set on .saotn.org even though I wanted to log in on my child site itfaq.nl.

    So I looked at the sunrise.php file and noticed some queries on the

    $wpdb->prefix_domain_mapping
    $wpdb->prefix_domain_mapping_logins

    tables. Which were empty in my database…

    Adding, editing and deleting sites didn’t change anything, the domain_mapping tables stayed empty. So I added some data with the following SQL statements:

    INSERT INTO wp_sys_domain_mapping(id,blog_id,domain,active) VALUES (default,1,"www.saotn.org",1)
    INSERT INTO wp_sys_domain_mapping (id, blog_id, domain, active) VALUES (default,3,"www.itfaq.nl",1)
    INSERT INTO wp_sys_domain_mapping_logins (id, user_id, blog_id, t) VALUES (1,1,1,now())
    INSERT INTO wp_sys_domain_mapping_logins (id, user_id, blog_id, t) VALUES (2,1,3,now())

    Resulting in a successful log in to my child site itfaq.nl, sweeeet! πŸ™‚

    Don’t know why the tables stayed empty though, PHP didn’t log any errors (error_reporting on). Maybe someone can reproduce this, preferably on Windows Server IIS, otherwise I’ll mark this topic as resolved later.

    @janr — “installed the WordPress MU Domain Mapping plugin through the WordPress Dashboard, as where I used the “mu-plugin” method the previous time.”

    No, you can’t do that. The files have to go in specific locations, that the Dashboard Install Plugin won’t do. Follow my Domain Mapping Plugin installation instructions. (Since the plugin Must be used for your domain mapping to work, I put the appropriate file in the “must use plugin” folder, where it won’t show up in the list of plugins that can be disabled or deleted.)

    “after setting up my sites ( http://www.saotn.org as ID 1, and http://www.itfaq.nl as ID 3, after deleting the site once ), I couldn’t log in”

    Two errors here.

    1) You don’t get to pick the ID of a site when you create it; the ID is assigned. So I guess you are talking about what ID you specify in the Domain Mapping. But you don’t get to pick a number there, either. You specify the actual Site ID of the site you want to map. How do you get the ID? Read my instructions, I cover it step by step. (It’s visible in several URLs.)

    2) Mapping “Site ID 1” Does Not Work, and you will get locked out of your entire network. The main site Can Not be mapped; you need the domain name steady to be able to then find out how other sites should get mapped.

    “Don’t know why the tables stayed empty though”
    That is because you don’t have the mapping plugin installed and/or configured properly. All your database manipulation was unnecessary, and since you were trying to map Site ID 1 it should have gotten you locked out.

    Here is a work around that worked for me:

    In wp-config.php, make sure the line:
    define( ‘COOKIE_DOMAIN’, ”);
    exists and IS NOT commented out.

    If you already had a sunrise.php file in wp-content replaced it with a copy of the one thats in wordpress-mu-domain-mapping. ( you can just move the original to the desktop or someplace you can get to it if you want to put it back later… and make sure the sunrise.php file your copying is still also in the wordpress-mu-domain-mapping directory )

    Then edited the sunrise.php file commenting out line 5-7 which should now look like:
    /*if ( defined( ‘COOKIE_DOMAIN’ ) ) {
    die( ‘The constant “COOKIE_DOMAIN” is defined (probably in wp-config.php). Please remove or comment out that define() line.’ );
    }*/

    **Make sure to remember to save after making changes**

    Now you should be able to log in, and domain mapping should still be working.

    Thread Starter Jan Reilink

    (@janr)

    Hi I5hikawa, thanks for your reply!

    I finally went with your solution, which seems to work fine. I made some code changes to the mu-domain-mapping plugin for setting the cookie, but didn’t want to keep running with code changes πŸ™‚

    Marked as resolved.

Viewing 9 replies - 1 through 9 (of 9 total)
  • The topic ‘Can't log on to mapped domain dashboard anymore since 4.1.1 update’ is closed to new replies.