You should make sure that in your /etc/apache2/users/username.conf you have the following:
<Directory "/Users/username/Sites/">
Options Indexes MultiViews FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
The FollowSymlinks and AllowOverride are essential here. While you are hinting at both in your question, maybe you did not configure these correctly in tandem.
Make sure in httpd.conf /private/etc/apache2/extra/httpd-userdir.conf is included as well. It is by default.
After any modifications, restart the web server for the changes to take effect.
If you are still having problems, maybe there is a problem with your actual rewrite rules. Were you using them in a .htaccess context before as well? Note that in a .htaccess, the rewrite rule regex is matched against a request URI without the leading slash and always relative to the directory where the .htaccess resides, whereas in a global httpd.conf the URI must match with a leading slash and is relative to the web root. Because assumedly you have your .htaccess in a subdirectory of ~/Sites, your rewrite rules might behave different from when the .htaccess resides in the web root of a (virtual) host.
To debug mod_rewrite you can enable rewrite logging. You should enable that in /etc/apache2/httpd.conf:
RewriteLogLevel 3
RewriteLog /path/to/rewrite.log
I had to reformat the external drive I use for Time Machine. It said there was a permissions problem, that it was Read Only - which it wasn't, and a look at the Info for it confirmed it was Read & Write. Still, I just erased the drive and started again. Works fine now.
Best Answer
LockFile is one of the directives of Apache ≤ 2.2. This was replaced by Mutex in Apache 2.4, which is the version of Apache installed with OS X 10.11, El Capitan.
Edit the file
/etc/apache2/extra/httpd-mpm.conf
to remove this part:Then check config
apachectl -t
and restartsudo apachectl restart
.