Multisite wp-admin redirect loop

I have a subdirectory multisite setup, it all works fine apart from one small issue...

The sites are setup in the following structure:

http://domain.com/blogs/
http://domain.com/blogs/second/
http://domain.com/blogs/third/

You can access the admin panels if you use the following:

http://domain.com/blogs/wp-admin/
http://domain.com/blogs/second/wp-admin/index.php
http://domain.com/blogs/third/wp-admin/index.php

But if you use the following (as wordpress does in the dashboard), then it gives a redirect loop?

http://domain.com/blogs/second/wp-admin/
http://domain.com/blogs/third/wp-admin/

It seems there is some sort of redirect just when index.php is not specified on the subfolder installs, what is causing this?!


This multisite setup was setup in Wordpress 3.9.1 or before.


.htaccess

# BEGIN WordPress
IfModule mod_rewrite.c
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [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

Topic multisite redirect wp-admin Wordpress

Category Web


instead of :

RewriteBase /

you should have:

RewriteBase /blogs/

p.s. where is that .htaccess placed? in ROOT or in blogs directory?


Your RewriteBase should be /blogs/

Normally when going through the network setup it will tell you what your .htaccess should do replacing all the previous WordPress rules.


Not sure what caused this, a (hackish) fix that worked for me though:

RewriteRule ^blogs/([_0-9a-zA-Z-]+)/wp-admin/$ blogs/$1/wp-admin/index.php [L]

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.