On Sat, Jan 03, 2015 at 10:33:52PM +0100, Tor Houghton wrote:
> Hello,
>
> I'm wondering if there is a plan to add support for ~user style URL
> expansion to the new httpd.
>
> I've tried fudging it for 'someuser' by adding the following to the default
> server within /etc/httpd.conf, but to no avail:
>
> location "/~someuser/*" {
> root "/htdocs/users/someuser"
> }
>
> (I also tried creating a directory '/htdocs/~someuser', but that didn't work
> either, thankfully.)
>
> I'm running 5.6 (not -current; so I should probably do that), but looking at
> the current commits, I can't see that this is supported right now?
>
> Or am I doing it wrong?
>
- User directories are not explicitly supported and have to be
within the chroot - somewhere in /var/www.
- For example, you can currently create user directories the following way:
# mkdir /var/www/users/~reyk
# ln -s /var/www/users/reyk ~reyk/public_html
# echo Hallo > /var/www/users/~reyk/index.html
location "/~*" {
root "/users"
}
- For your snippet, you would need an upcoming feature from chrisz@ to
strip elements from the request path (so it can be done without
rewrite/regex).
Currently, a client requesting http://somehost/~someuser/ would end up
in /var/www/htdocs/users/someuser/~someuser/ - which does not exist.
location "/~someuser/*" {
root "/htdocs/users/someuser"
}
You can fix the path by stripping the last path element so that it
turns into /var/www/htdocs/users/someuser.
location "/~someuser/*" {
root { "/htdocs/users/someuser", strip 1 }
}
Reyk