.htaccess : Jak přesměrovat subdoménu „test“ do adresáře www/subdom/test/www/ ?
Zdravím,
nemohu přijít na to, jak upravit výchozí .htaccess tak, aby byly subdomény obecně, ale třeba i jedna konkrétní přesměrována ne do výchozího adresáře, ale do adresáře o úroveň níže.
Příklad:
Ve výchozím adresáři pro subdomény www/subdom/ mám adresář „test“ (www/subdom/test/) a .htaccess tak jak je nyní po zadání
http://test.mojedomena.cz nasměruje do www/subdom/test/. Chtěl bych ale nasměrovat do www/subdom/test/www/ abych pak mohl do adresáře www/subdom/test/ umístit skripty aplikace a adresář www/subdom/test/www/ pak použít pro veřejné soubory jako jsou obrázky a podobně.
V adresáři www/subdom/test/ bych pak pochopitelně měl .htaccess s obsahem Require all denied
Tedy chtěl byl vědět, jak výchozí .htaccess upravit tak, aby bylo přesměrování ovlivněno jen na konkrétní subdoménu a taky nebo obecně na všechny subdomény.
Děkuji!
2 Answers
Zdá se, že se mi to podařilo upravit. Pokud je v tom nějaká chyba, tak se nechám rád poučit.
Původně je dokument root přímo v adresáři subomény, takže http://test.tvojedomena.cz/ směřuje do asresáře /www/subdom/test/.
Já tento adresář ale chci použít pro skripty webu, knihovny a další a chci, aby byl dokument root až v podadresáři „www“ tedy /www/subdom/test/www/.
Toho jsem docílil úpravou té části .htaccess souboru týkající se subdomény (originál):
# 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]
Originál jsem změnil takto (upraveno):
# subdomeny (s nebo bez www na zacatku) RewriteCond %{REQUEST_URI} !^subdom/ RewriteCond %{REQUEST_URI} !^/subdom/ RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.([^\.]*)\.([^\.]*)$ RewriteCond %{DOCUMENT_ROOT}/subdom/%2/www/ -d RewriteRule (.*) subdom/%2/www/$1 [DPI]
Tímto říkáme, že dokument root subdomény je v podadresáři adresáři „www“, takže http://test.tvojedomena.cz/ bude směřovat do adresáře /www/subdom/test/www/.
Stále bych však chtěl ošetřit případ, aby bylo možné používat jak originální, tak upravenou variantu zároveň. Bylo by tedy na .htaccess souboru, aby otestoval, zda v adresáři subdomény existuje podadresář „www“. Pokud by exitoval, tak by přesměroval do toho „www“ adresáře, ale pokud ne, tak by použil přesměrovaní podle originální varianty, tedy přímo do adresáře subdomény.