Zdravim,
viděl jsem tu jedno téma na automatické subdomény z adresářů tak bych se chtěl zeptat jak se to dělá s XAMPPem.
Na linuxu se mi to podařilo, ale na Windowsu to fakt nejde a nejde.
Nezkoušel to už někdo?
díky za rady
Na windows existuje soubor hosts, který se musí editovat. Nejčastěji
127.0.0.1 stranka # pouze komentář
potom můžeš přistupovat pomocí http://stranka/, možné je samozřejmě použít koncovku (.lt, apod.)
Pokud chceš editovat i cestu k souborům domény, musíš změnit DocumentRoot.
hosts je asi k ničemu, nebo to funguje i pro ostatní uživatele v internetu?
tohle ale moc konkrétní řešení, potřebuju to obecně
např:
fi.pas.eu vybere z adresáře /pas/fi
digi.pas.eu vybere z adresáře /pas/digi
...
abych to nemusel psát ručně pro každou složku
XAMPP ale slouží pro localhost. Pokud to chceš řešit takto, tak stačí pomocí PHP nebo jestli podporuje server APACHE, tak stačí z řetězců adresy odebírat počáteční písmena domény (subdomény) a podle toho vkládat obsah (přesměrovávat, inkludovat, apod.) Tato možnost jde i bez podpory Apache, pouze v PHP.
V tom případě nechápu proč řešíš:
fi.pas.eu
digi.pas.eu
na localhostu by si musel přepsat hosts soubor a nastavit přímo pro tyto adres různé názvy, které by stejně byly jen na lokální síťi. XAMPP i WAMP slouží k testování a provozu internetových aplikací pouze na lokální úrovni. Tudíž, pokud budeš toto preferovat na serveru už ti to bude k ničemu.
Doporučuji tedy použít například PHP skript, ve kterém budeš jak již jsem jednou psal, kontrolovat URL adresu. Pokud bude začínat její řetězec na digi, budeš brát adresář /root/digi/ pokud bude řetězec začínat na fi, bude to například /root/module/fi/
Navíc pokud to potom nahraješ na server, který nemá apache, tak je to jedna z mála možností jak to řešit, protože tam htaccess mít nebudeš. Co nechápeš?
Nejspíš dost dobře nechápu co potřebuješ, ale to co si napsal, že chceš - přiřazování adresářů podle subdomény lze řešit tak jako jsem ti napsal. Možné je to také pomocí htaccess, ale pouze na serverech s apachem.
V tom případě použij konstrukci:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^fi\.pas\.eu$
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^(.*)$ fi/$1 [L,QSA,PT]
Našel jsem i kompletní řešení pro podobnou problematiku, stojí to za pročtení.
# subdomeny (s nebo bez www na zacatku)
RewriteCond %{REQUEST_URI} !^subdom/
RewriteCond %{REQUEST_URI} !^/subdom/
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$
RewriteCond %{DOCUMENT_ROOT}/subdom/%2 -d
RewriteRule (.*) subdom/%2/$1 [DPI]
mi nefunguje :( prej nemůže odkázat na ErrorDocument :D
když na poslední řádek přidám ještě před to %{DOCUMENT_ROOT} tak to vypíše hlášku 403
a) musíš počítat s tím, že na localhost nelezeš přes www
b) musíš počítat s tím, že výchozí adresář je root (www) a ten používat (tak jako na 5. řádku)
c) musíš definovat chybové hlášky 40#
#etc, root, www
ErrorDocument 404 /etc/404.html
ErrorDocument 403 /etc/403.html
chybový hlášky jsou definovaný přes httpd.conf v Apachi a 403 třeba jede, o to nejde, nepotřebuju vidět popisek chyby, ty základní znám
chodim tam přes obyč .eu doménu, nikoliv http://localhost
Teď mě ještě napadlo řešení, které publikoval Hrach:
http://jan.skrasek.com/…en-na-lokale
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku