www.example.com/domains/example.com – jak odstranit?

Vyřešeno3.69K zhlédnutíWebSite
1

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?

Role: Zákazník+ Web: https://kb.wedos.com/cs/ Vizitka: Pokud máte nějaký problém, prosím, popište co nejvíce podrobností. Na dotazy typu "nejde mi web, potřebuji ho spravit", se odpovídá velmi těžce - nikdo jiný netuší, jestli využíváte WordPress, Drupal, Joomlu, Prestashop, .., zda se jedná o čistou instalaci nebo nefunguje zaběhnutý web. V ideálním případě přiložte i adresu daného webu, aby se podpora a komunita mohly podívat na konkrétní problém a nemusely si ho představovat. Doporučuji se také podívat na https://kb.wedos.com/cs/ , kde najdete spoustu užitečných rad na vyřešení vašich problémů s webem :)
Otázka je uzamčena pro nové odpovědi.
RM130195 Vybral nejlepší odpověď 3. 4. 2020
0

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:

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.

Role: Zákazník+ Web: https://jakubsarm.eu/ Vizitka: Jmenuji se Jakub a rád Vám poradím ohledně CSS, HTML, PHP a TypeScriptů. Popřípadě správa VPS serverů, domén a DNS.
RM130195 Vybral nejlepší odpověď 3. 4. 2020
Prohlížíte 1 ze 1 odpovědí, klikněte zde pro zobrazení všech odpovědí.