We show that f(x)=1/x is the only solution. We do this in several steps.
Step 1 We show that f(x) is a non-increasing function. Suppose the contrary; say 0<a<b implies that f(a)<f(b), for some a,b. Then
w=b−abf(b)−af(a)
is in (0,∞). It is easy to check that w>f(b) using f(b)>f(a). Thus w>f(b)>f(a). Taking x=a and y=w−f(a), we get
f(w)=af(1+a(w−f(a))).
Similarly, x=b and y=w−f(b) gives
f(w)=bf(1+b(w−f(b))).
Thus a=b contradicting a<b. We conclude that a<b implies that f(b)≤f(a).
Step 2 Taking x=y=1, we get f(f(1)+1)=f(2). Similarly, putting x=1,y=2, we obtain f(f(1)+2)=f(3); x=2,y=1 implies f(f(2)+1)=2f(3). Thus
2f(3)=f(f(2)+1)=f(f(f(1)+1)+1)=(f(1)+1)f(1+(f(1)+1))=(f(1)+1)f(f(1)+2)=(f(1)+1)f(3).
This gives f(1)+1=2 and hence f(1)=1.
Step 3 Suppose x>1, and put y=1−(1/x). Then
f(f(x)−x1+1)=xf(1+x−1)=xf(x).
If f(x)>(1/x), we see that f(x)−(1/x)+1>1 and the monotonicity of f(x) gives
f(f(x)−x1+1)≤f(1)=1.
Thus xf(x)≤1, contradicting f(x)>(1/x).
If f(x)<(1/x), we see that f(x)−(1/x)+1<1, and
f(f(x)−x1+1)≥f(1)=1,
and hence
1≤f(f(x)−x1+1)=xf(x)<1,
which again is impossible. We conclude that f(x)=x1, for all x>1.
Now, take any x>0. Then f(x)+1>1, so that
f(f(x)+1)=f(x)+11.
Putting y=1 in the given relation, we get
f(f(x)+1)=xf(1+x)=1+xx;
we have used 1+x>1 in the last equality. Thus we obtain
f(x)+11=1+xx,
for all x>0. This gives f(x)=1/x for all x>0.