In Plesk heb je de optie om "FollowSymLinks" uit te schakelen.
FollowSymLinks houdt een veiligheidsrisico in, maar ik meen dat je het nodig hebt voor rewriting (mooie URLS). Dus dat je in plaats van www.mijnsite.nl/product.php?id=123www.mijnsite.nl/product/123 kunt doen. Maar heb je daar per se die FollowSymLinks voor nodig? Of kan het ook zonder? Weet iemand dat?
Na even gezocht te hebben in de documentatie:
Recentere versies van Apache vereisen FollowSymlinks, of op zijn minst SymlinksIfOwnerMatch, als extra veiligheid. Waarom dit zo gedaan is, geen idee. Ik heb het net getest en de documentatie klopt op dit punt.
Als je mod_rewrite wil gebruiken niet, of je moet hem opnemen in AllowOverride, zodat je het in een individueel geval kan inschakelen. En nogmaals: er is ook SymlinksIfOwnerMatch, de veiligere variant van FollowSymlinks.
Wat houdt dat precies in ... SymlinksIfOwnerMatch? Ik snap sowieso niet echt wat FollowSymLinks doet ... op welke manier wordt dat gebruikt bij het rewriten?
Dus als we in plaats van "www.mijnsite.nl/product.php?id=123" werken met "www.mijnsite.nl/product/123" wat doet dat FollowSymLinks dan precies? En op welke manier is SymlinksIfOwnerMatch veiliger?
Dan doet FollowSymlinks zelf niets, er is alleen een eis dat het ingeschakeld is, en de foutmelding die je anders krijgt geeft dit ook duidelijk aan. Waarschijnlijk zodat je wat meer granulariteit hebt om te bepalen welke gebruikers wel en niet mogen rewriten.
FollowSymlinks doet wat de naam aangeeft: het staat toe dat Apache symlinks volgt. SymlinksIfOwnerMatch zorgt ervoor dat dat alleen gebeurt wanneer het doel (bestand of directory) dezelfde eigenaar heeft als de bron.
Even voor mijn begrip (zoals je inmiddels weet ben ik nog niet heel bekwaam op dit vlak) ... ik kan dus FollowSymlinks uitschakelen, maar in plaats daarvan SymlinksIfOwnerMatch inschakelen. Correct?
>> dat dat alleen gebeurt wanneer het doel (bestand of directory) dezelfde eigenaar heeft als de bron
The server will only follow symbolic links for which the target
file or directory is owned by the same user id as the link.
Een simpel voorbeeld:
Jij hebt /home/ozzie/public_html, en je legt vanuit daar een symlink naar /etc.
Als je nu naar www.example.com/etc gaat krijg je met FollowSymlinks de inhoud van /etc te zien, met SymlinksIfOwnerMatch niet, omdat /etc eigendom is van root, en de link gemaakt is door ozzie. Dus met SymlinksIfOwnerMatch kun je alleen symlinks laten volgen die aan de eis voldoen dat het doel eigendom is van dezelfde user als de link zelf.