.htaccess : Jak přesměrovat subdoménu „test“ do adresáře www/subdom/test/www/ ?

Vyřešeno1.27K zhlédnutíWebhosting
0

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!

Role: Zákazník
Otázka je uzamčena pro nové odpovědi.
RM130195 Vybral nejlepší odpověď 29. 10. 2020
0

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.

Role: Zákazník
RM130195 publikoval nový komentář 19. 10. 2020
Prohlížíte 1 ze 2 odpovědí, klikněte zde pro zobrazení všech odpovědí.