I have been reading through this forum for several hours trying to get wordpress MU installed.
I'm a Linux admin and have installed, configured, and customized several popular open source software packages.
I took on a project to install wordpress MU for a customer. I figured that it would be a 5 minute job.
Several hours later, and several modifications to both .htaccess and httpd.conf, I've finally got it figured out.
Here are some given variables in my setup:
domain name = domain.com
We will use subdomain install (blog1.domain.com)
I chose the subdomain install because it seemed too difficult to use subdirectories.
Install directory= /home/username/public_html/wpmu
or http://www.domain.com/wpmu/
First file modified (after the initial install):
/home/username/public_htmll/wpmu/.htaccess
======here's what it looks like===================
RewriteEngine On
RewriteBase /wpmu/ <----changed this to wpmu
==ADD THESE 3 LINES TO ENSURE THAT TRAILING SLASH IS ADDED=
==The reason is that if someone does not use a trailing slassh, they will get a 404, these lines append the / automatically
===========================================================
# Add trailing slash on directory request
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^/home/username/public_html/(.*[^/])$ $1/ [R,L]
==================================================================
===========only modified the third line in this section==
# Rewrite http://www.domain.com to domain.com
RewriteCond %{HTTP_HOST} ^www\.(.*)
RewriteRule ^(.*) http://domain.com/wpmu/$1 [R,L]
====original line is below. notice the change above====
RewriteRule ^(.*) http://%1/$1 [R,L]
========================================================
=======didn't modify anything below=====================
#uploaded files
RewriteRule ^(.*)?/?files/(.*) wp-content/blogs.php?file=$2 [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
end of .htaccess file.
Now, the instruction in the readme.txt say that you must
modify the httpd.conf file. This is a pretty drastric modification for an user friendly open source blog.
Not many people will have access to modify this file.
If you do modify it, make this modification to the virtual server section.
<VirtualHost 111.111.111.111>
========the next line is the important one=====
========make sure and append to, don't replace
========the original domain.com with the *.domain.com
========the WPMU instruction were wrong========
ServerAlias domain.com *.domain.com
ServerAdmin webmaster@domain.com
DocumentRoot /home/usernam/public_html
BytesLog domlogs/domain.com-bytes_log
ServerName http://www.domain.com
User username
Group username
CustomLog /usr/local/apache/domlogs/domain.com combined
ScriptAlias /cgi-bin/ /home/username/public_html/cgi-bin/
</VirtualHost>
I found these instructions which aided in my successful install.
http://www.blogopreneur.com/2006/11/06/installing-wordpress-mu-on-a-cpanelwhm-server/#comment-4521
Not everyone has a WHM/Cpanel server, but the instructions were much more clear than the original WPMU instructions were and that's where I realized that I should append the serveralias in the virtual server section instead of replace it.
Overall, I would say that this is a very difficult open source package install.
Redirects, httpd.conf, server aliasing, and .htaccess are all fairly complex issues.
I hope this helps someone and save them the 8 hours it took me to get it working.