Autor Zpráva
Jan Doležal
Profil
Ahoj,

Jak na localhostě udělat, aby když zadám 127.0.0.1, tak se zobrazil obsah složky c:/wamp/www (index.php).
V případě, že zadám adresu neco.lo, tak se ukázal obsah složky c:/wamp/www/neco.lo.

Bohužel mě nenapadá co napsat do httpd.conf, aby to bylo dynamické (automaticky). Tzv. když budu potřebovat toto.lo, tak nebudu muset edtovat httpd.conf.
Směrování .lo mám vyřešení přes DNS server.

Zkusil jsem:
<VirtualHost *:80>
    ServerName loc
    ServerAlias *.loc
    VirtualDocumentRoot "C:/Wamp/www/%-2+/"
</VirtualHost>
ale wampserver se už nespustí (mod_vhost_alias je povolen).

Děkuji.
Davex
Profil
Jan Doležal:
když zadám 127.0.0.1, tak se zobrazil obsah složky c:/wamp/www
Pro 127.0.0.1 se musí vytvořit samostatný VirtualHost.

wampserver se už nespustí
Je nějaká chyba v chybovém logu Apache?
Jan Doležal
Profil
Tak se to vzpomatovalo.
Mám toto:
<VirtualHost 127.0.0.1>
    UseCanonicalName On
    ServerName Localhost
    VirtualDocumentRoot "C:/Wamp/www/"
</VirtualHost>

<VirtualHost *:80>
    UseCanonicalName Off
    ServerAlias *.loc
    VirtualDocumentRoot "C:/Wamp/www/%-2+/"
</VirtualHost>

ale vždy mi to ukáže obsah C:/Wamp/www/


Pokud použiji toto, tak to funguje pro *.loc jak má, ale 127.0.0.1 nee.
<VirtualHost *:80>
    UseCanonicalName Off
    ServerAlias *.loc
    VirtualDocumentRoot "C:/Wamp/www/%-2+/"
</VirtualHost>
Davex
Profil
V prvním případě jsi se dostal do zajímavé situace. Nadefinoval jsi, že na IP adrese 127.0.0.1 bude jeden virtualhost se jménem Localhost a na ostatních IP adresách (a portu 80) bude jiný virtualhost s aliasem *.loc. Tím, že je pro každou adresu definovaný jen jeden, se pro každé jméno použije první definice (jako výchozí).

Při vytváření virtualhostů doporučuji postupovat podle prvního příkladu z dokumentace Apache a každého virtualhosta definovat vždy pro všechny IP adresy (<VirtualHost *:80>).
Jan Doležal
Profil
Davex:
Děkuji, už to šlape.
Jan Doležal
Profil
Doted jsem používal program wampserver, ale jelikož přestal vyhovovat, tak jsem zvolil vlastní instalaci součástí. Bohužel to přestalo fungovat.

Fungují domény *.loc, nefunguje 127.0.0.1
<VirtualHost *:80>
    UseCanonicalName Off
    ServerAlias *.loc
    VirtualDocumentRoot "C:/Wamp/WebRoot/%0"
</VirtualHost>

<VirtualHost *:80>
    UseCanonicalName On
    ServerName Localhost
    DocumentRoot "C:/Wamp/WebRoot/"
</VirtualHost>

Funguje 127.0.0.1, nefungují domény *.loc
<VirtualHost *:80>
    UseCanonicalName On
    ServerName Localhost
    DocumentRoot "C:/Wamp/WebRoot/"
</VirtualHost>

<VirtualHost *:80>
    UseCanonicalName Off
    ServerAlias *.loc
    VirtualDocumentRoot "C:/Wamp/WebRoot/%0"
</VirtualHost>

Nebylo by lepší, kdybych pro každou doménu vytvořil zvláštní virtualhost?
Davex
Profil
Jan Doležal:
Nezapomněl jsi na NameVirtualHost *:80 z příkladu konfigurace?
Jan Doležal
Profil
Davex:
:) hádaš dobře :) Děkuji.

Prosimtě, ještě jedna vše. Rozhodl jsem se nakonec dělat config (obsahují virtualhost) pro každou doménu zvlášt.
Nevíš jak co nastavit, aby když neexistuje config např pro doménu me.loc, tak se ukáže 404 a né obsah 127.0.0.1?
Davex
Profil
Jan Doležal:
Pro všechna neexistující jména se používá první definovaný VirtualHost, takže si ho stačí přidat s DocumentRoot třeba do neexistujícího adresáře.
Jan Doležal
Profil
Davex:
Nojo, jenže když toto udělám, tak tam skončí i 127.0.0.1.
Davex
Profil
Tak si pro ServerName Localhost přidej ServerAlias 127.0.0.1.
Jan Doležal
Profil
Davex:
Děkuji :)
Jan Doležal
Profil
Ještě jedna věc.

Když zadám adresu 127.0.0.1/a, tak mě to přesměruje na localhost/a/.
Pokud zadám 127.0.0.1/a/, tak na této adrese ostanu.

Nevíš, jak zabránit tomu přesměrování na adresu localhost?
Davex
Profil
Je tam zapnuté UseCanonicalName On, takže stačí přepnout na Off.
Jan Doležal
Profil
Davex:
To nepomohlo. Dělá to to samé.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: