One domain, two home directories

Emers emers at euro-net.pl
Tue Jul 15 23:46:22 MSD 2008


Igor Sysoev wrote:
> On Thu, Jul 03, 2008 at 08:36:26PM +0200, Emers wrote:
> 
>> I have problem with handling two different home directories into one 
>> domain. For example my domain is mydomain.net and it points to directory
>> /home/emers/www/
>>
>> [...]
>>     server {
>>         listen          80;
>>         server_name     mydomain.net;
>>         access_log      /var/log/www/access_log_emers combined;
>>         error_log       /var/log/www/error_log_emers error;
>>         root            /home/emers/www;
>>         index           index.html index.htm index.php;
>>
>>         location ~ /\.ht {
>>             deny        all;
>>         }
>>
>>         location ~ .*\.php?$ {
>>             include /etc/nginx/fastcgi.conf;
>>             fastcgi_pass  unix:/tmp/fcgi.socket;
>>             fastcgi_index index.php;
>>         }
>>     }
>> [...]
>>
>> There is another user account in /home/mail/atmailopen/ with .php and 
>> .html files.
>>
>> The question is how to alias mydomain.net/mail into 
>> /home/mail/atmailopen directory? I tried to add location:
>>
>>         location /mail {
>>             alias       /home/poczta/atmailopen/;
>>         }
>>
>> inside server brackets (included above), then .php files produces "No 
>> input file specified" message, .html files are showed property.
> 
> Probably, you need to add the location and rewrite URI to match root:
> 
>           location ~ ^/mail/.*\.php?$ {
> 
>               rewrite  ^/mail(.+)$   $1   break;
> 
>               root        /home/poczta/atmailopen/;
>               include /etc/nginx/fastcgi.conf;
>               fastcgi_pass  unix:/tmp/fcgi.socket;
>               fastcgi_index index.php;
>           }
> 
> 

Thanks for the answer. Your solution works almost great. Addind two 
followed locations seems to solve the problem, when URI hasn't folders 
inside mail directory (f.e: mydomain.com/mail/index.php), but scripts in 
subdirectories in /home/mail/atmailopen/*/ tree redirect to 
mydomain.com/ link, instead of mydomain.com/mail/.

For example, link in mydomain.com/mail/install/index.php?step=3 directs 
to mydomain.com/install/index.php?step=4. mail/ is lost.


My locations are as follow:

         location /mail {
             alias       /home/mail/atmailopen/;
         }
         location ~ ^/mail/.*\.php?$ {
             rewrite     ^/mail(.+)$   $1   break;
             root        /home/mail/atmailopen/;
             include /etc/nginx/fastcgi.conf;
             fastcgi_pass  unix:/tmp/fcgi.socket;
             fastcgi_index index.php;
         }

-- 
Regards.

Emers





More information about the nginx mailing list