Portál AbcLinuxu, 16. července 2025 15:06
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin support@domain.sk ServerName router.domain.sk DocumentRoot /var/www/html </VirtualHost> <VirtualHost *:80> UseCanonicalName Off ServerAdmin support@domain.sk ServerAlias www.* VirtualDocumentRoot /home/server/html/virtual/DocumentRoot/%-2.0.%-1.0/public_html </VirtualHost> <VirtualHost *:80> UseCanonicalName Off ServerAdmin support@domain.sk ServerAlias * VirtualDocumentRoot /home/server/html/virtual/DocumentRoot/%-2.0.%-1.0/public_html/_sub/%-3+ </VirtualHost>Idea je taká, že: adresu www.domain.sk bude hľadať v /home/server/html/virtual/DocumentRoot/example.sk/public_html adresu domain.sk bude hľadať v /home/server/html/virtual/DocumentRoot/example.sk/public_html adresu xyz.domain.sk bude hľadať v /home/server/html/virtual/DocumentRoot/example.sk/public_html/_sub/xyz adresu www.xyz.domain.sk bude hľadať v /home/server/html/virtual/DocumentRoot/example.sk/public_html/_sub/www.xyz Realita je zatiaľ taká, že: www.domain.sk ide správne domain.sk hľadá v /home/server/html/virtual/DocumentRoot/example.sk/public_html/_sub/_ čiže nesprávne xyz.domain.sk ide správne www.xyz.domain.sk hľadá v /home/server/html/virtual/DocumentRoot/example.sk/public_html čiže nesprávne pričom napríklad abc.xyz.domain.sk ide správne a hľadá to v home/server/html/virtual/DocumentRoot/example.sk/public_html/_sub/abc.xyz Pravdu povediac - potreboval by som len pomôcť s druhým VirtualHost pravidlom:
<VirtualHost *:80> UseCanonicalName Off ServerAdmin support@domain.sk ServerAlias www.* VirtualDocumentRoot /home/server/html/virtual/DocumentRoot/%-2.0.%-1.0/public_html </VirtualHost>a to nejakým regulárnym výrazom v položke ServerAlias aby bralo výlučne adresy typu www.nieco1.nieco2 (www.domain.sk) a nieco1.nieco2 (domain.sk) Dúfam, že som to popísal zrozumitelne a vopred Vám ďakujem za konštruktívne odpovede.
Asi tě zklamu, ale tvůj zápis se chová podle očekávání. Prohlídl jsem si to a tady jsou nějaké mé závěry:
domain.sk hľadá v /home/server/html/virtual/DocumentRoot/example.sk/public_html/_sub/_ čiže nesprávne
Toto je správně (to, že ty to chceš jinak, je věc jiná - viz dále). Ono to nemůže hledat v .../public_html, když to nemá www., jak píšeš v pravidlu:
ServerAlias www.*
A
www.xyz.domain.skje taky dobře, protože naopak www. obsahuje.
Musíš svůj návrh celý překopat (vč. adresářové struktury). Hlavně si rozmysli, jak chceš handlovat ty www. - jestli jako samostatné subdomény nebo jen jako aliasy. Druhá věc je, že to, co je první psané, má větší váhu. Osobně bych tedy šoupnul zápis pro subdomény jako první. Následně až domény. Budu-li uvažovat www jako alias, tak tam mezi hvězdičky nasázej příslušný počet teček (a nebo ještě lépe tam zkus nasadit regulární výraz – osobně si myslím, že by to mělo jít, ale nikdy jsem to nezkoušel). Asi bych ti i doporučil handlovat root domény jako subdoménu (www), pokud ovšem nezamýšlíš nakládat s www jinak (ale asi ne).
<VirtualHost *:80> UseCanonicalName Off ServerAdmin support@domain.sk ServerAlias %-2.0.%-1.0 www.%-2.0.%-1.0 VirtualDocumentRoot /home/server/html/virtual/DocumentRoot/%-2.0.%-1.0/public_html </VirtualHost>Ale takýto zápis bohužiaľ nefunguje. Hlavně si rozmysli, jak chceš handlovat ty www. - jestli jako samostatné subdomény nebo jen jako aliasy.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.