www.example.com/domains/example.com – jak odstranit?
Dobrý den, mám webové stránky, které fungujou jen přes soubory, nikoliv přes databázi. Web je rozdělen na několik sekcí, které se liší v barevnosti a na pozadí je v každé jiný obrázek. Soubory, které jsou společné pro celý web (šablona a inforormace pro všechny sekce), mají ve svém názvu global a jsou umístěny ve výchozím adresáři domains/example.com (používám pro přístup k nim relativní cestu). Pro větší uživatelský přehled se každá ze stránek v základu skládá ze dvou souborů – index.php a obsah.txt, který obsahuje výhradně textový obsah pro stránku prakticky bez použití kódu (obsahuje jen základní html kódy jako je a, h1, p,…). index.php jako takový jen sbírá data z různých souborů a dává je dohromady, abych mohl ovlivnit některé informace na všech stránkách.
obsah index.php:
<head><?php include ("../global-data.php"); ?> <?php include ("./microsite-data.php"); ?></head> <?php include ("../menu.txt"); ?><br> <div id="text"><?php include ("../global-hlaseni.php"); ?><?php include ("./obsah.txt"); ?><?php include ("../global-paticka.php"); ?></div>
Ale teď k samotnému problému. Pokud mám adresář pojmenovaný číslem (například /4) a stránku zadám jako http://www.example.com/4, automaticky mě prohlížeč přesměruje na adresu http://www.example.com/domains/example.com/4. Pokud mám adresář, jehož název obsahuje jen písmena (např. /informace), zobrazí se mi i výsledná adresa krátce – https://www.example.com/informace.
Mám dva .htaccess soubory, jeden je v adresáři www/.htaccess, ten je výchozí od Wedosu a druhý mám v adresáři www/domains/example.com/.htaccess.
První .htaccess:
# htaccess rules for subdomains and aliases # to create new subdomain, create a folder www/subdom/(subdomain name) # to create web for alias, create a folder www/domains/(whole domain name) # htaccess pravidla pro subdomeny a samostatne weby aliasu # pro vytvoreni subdomeny vytvorte adresar www/subdom/(nazev subdomeny) # pro vytvoreni webu pro alias vytvorte adresar www/domains/(cely domenovy nazev) # dalsi info a priklady: http://kb.wedos.com/r/32/webhosting-htaccess.html RewriteEngine On # cele domeny (aliasy) RewriteCond %{REQUEST_URI} !^domains/ RewriteCond %{REQUEST_URI} !^/domains/ RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$ RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d RewriteRule (.*) domains/%2/$1 [DPI] # 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] # aliasy - spravne presmerovani pri chybejicim / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R] # subdomeny - spravne presmerovani pri chybejicim / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]
Druhý .htaccess:
RewriteCond %{HTTP_HOST} ^example.com$ RewriteRule (.*) http://www.example.com/$1 [R=301,QSA,L] ErrorDocument 404 /404.php
Věděl by někdo, jak dát pryč /domains/example.com a zobrazit pouze jen číslo?
1 Odpověď
Dobrý den,
ve Znalostní batabázi to určitě bude:
➥ https://kb.wedos.com/cs/kategorie/webhosting/htaccess/
Přesněji to co potřebujete:
➥ https://kb.wedos.com/cs/webhosting/webhosting-samostatne-weby-pro-aliasy/
Webhosting – samostatné weby pro aliasy
Abyste pro nějakou doménu, která je u webhostingu nastavena jako alias, vytvořili samostatný web, stačí přes FTP vytvořit podadresář v adresáři www/domains.
Příklad: Máme webhosting a u něj je jako alias nastavena doména example.com a my pro ni potřebujeme jiný obsah. V takovém případě vytvořte adresář www/domains/example.com a do takto vzniklého adresáře nahrajte soubory, které se mají zobrazovat na adrese http://www.example.com/ (bude to fungovat též pro http://example.com/).
Pokud používáte aliasy s různým obsahem, důrazně doporučujeme také obsah hlavní domény přesunout do adresáře domains. Například máme webhosting doména1.cz a přidali jsme k němu druhou doménu doména2.com. Doporučené umístění stránek je následující:
- www – zde ponechte pouze náš .htaccess soubor
- www/domains/doména1.cz – zde nahrajte obsah hlavní domény
- www/domains/doména2.com – zde nahrajte obsah druhé domény
Taktéž se ujistěte, že u domény v DNS máte odpovídající A záznam směřující na příslušný webhostingový server (to by se mělo samo správně nastavit při nastavování aliasu).
Dále si přečtěte:
- Návod na přidání aliasů v administraci webhostingu.
- návod na provoz více stejných či různých redakčních systémů na jednom webhostingu
- řešení problému chybných přátelských URL adres při použití aliasů
Různé subdomény pro různé aliasy
V adresáři domains můžeme vytvářet i adresáře s názvem subdomén aliasů. Např. vytvoříme-li adresář www/domains/jirka.example.com, bude do něj nasměrována URL http://jirka.example.com/Čím se to liší od vytvoření adresáře www/subdom/jirka? Řešení se subdom se aplikuje na všechny aliasy (všechny domény, které jsou aliasem, budou mít společnou subdoménu jirka se stejným obsahem). Ale řešením s adresářem domains tuto subdoménu vytvoříme jen pro example.com.
- subdomény pomocí subdom – jednodušší řešení pro webhostingy, které nepoužívají aliasy
- subdomény pomocí domains – lepší řešení při používání aliasů
Soubor htaccess
Samostatné weby pro aliasy jsou dělány pomocí pravidel, která jsou v souboru .htaccess ve vašem webu.Následující soubor .htaccess vytvářet ani řešit nemusíte, ten je již ve vašem webhostingu připraven. Pro jeho použití stačí jen vytvořit potřebný adresář dle návodu výše.
Pravidla pro samostatné weby aliasů v souboru .htaccess jsou následující:
RewriteEngine On # cele domeny (aliasy) RewriteCond %{REQUEST_URI} !^domains/ RewriteCond %{REQUEST_URI} !^/domains/ RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$ RewriteCond %{DOCUMENT_ROOT}/domains/%2 -d RewriteRule (.*) domains/%2/$1 [DPI] # 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] # aliasy - spravne presmerovani pri chybejicim / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^domains/[^/]+/(.+[^/])$ /$1/ [R] # subdomeny - spravne presmerovani pri chybejicim / RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^subdom/[^/]+/(.+[^/])$ /$1/ [R]Tento kód řeší současně i vytvoření subdomén.