Portál AbcLinuxu, 12. května 2025 15:45
Zdravím,
měl bych po delší době malý dotaz na otázku, kterou se mi zatím nepodařilo vyřešit:
Neprve zasvěcení do problému: Na svém webhostingovém serveru používám Apache2 s nastavením mass virtual hostů. V adresáři /www/ mám jednotlivé adresáře s názvy "fixs.cz", "sharex.cz", etc., což zapříčiní, že server poskytuje na requesty adres http://fixs.cz/, http://sharex.cz/ etc. obsah z daného adresáře se stejným názvem jako zadaná adresa.
Problém se však vyskytne v případě zadání adres s prefixem "www" - server hledá místo adresáře "fixs.cz" adresář "www.fixs.cz", což je samozřejmě pochopitelné, ale dosti nepraktické... Aktuálně to mám řešené symlinky s prefixy "www", které vedou vždy na svou obdobu bez prefixu, ale to řešení se mi nelíbí.
Pro doplnění: Nastavení MVH je následovné:
<VirtualHost *:80>
# nastavi server tak, aby cerpal jmeno serveru z headeru
UseCanonicalName Off
# Virtual hosty
VirtualDocumentRoot /www/%0/
ServerAdmin info@nhx.cz
DocumentRoot /www
Options +ExecCGI
</VirtualHost>
A teď tedy ta otázka, kterou už snad ani není potřeba vznášet :): Je možné nějak udělat, aby Apache na dotaz www.neco.cz hledal adresar "neco.cz" bez jakýchkoliv symlinků či pomůcek v rámci filesystému?
Díky za nápady.
www.example.com/neco
a example.com/neco
dvě různé adresy se shodným obsahem – to není moc vhodné. Lepší je udělat přesměrování pomocí mod_rewrite
na jednu z těch variant. Jinak pokud byste chtěl jen z názvu odstranit to www, použijte ve VirtualDocumentRoot
%2+
místo %0
. Problém by ale byl jak rozlišit různé konfigurace VirtualHost
pro adresy začínající www
a ty ostatní – nevím, zda by fungovalo ServerAlias www.*
. Dalo by se to řešit jinou IP adresou a úpravou DNS.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.