Autor | Zpráva | ||
---|---|---|---|
Sylar Profil |
#1 · Zasláno: 12. 4. 2011, 16:58:50
Zdravím,
potřebuji na jedné doméně vytvářet automaticky (scriptem) subdomény. Support webhostingu mi řekl, že je potřeba nastavit tzv. "hvězdičkový záznam" kvůli DNS. Když ale nyní vytvořím scriptem subdoménu, zobrazí se na ní obsah hlavní domény, tedy to, co je na www.domena.cz. Podle supportu webhostingu to lze vyřešit htaccessem s obsahem RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !www.domain.com$ [NC] RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC] RewriteRule (.*) %2/$1 [L] když ale toto upravím pro své potřeby hází mi to Internal server error . Navíc jak jsem zjistil, tento kód mi přesměrovává subdomény http://text.domena.cz do složky http://domena.cz/test/ což není přesně to co potřebuji. Potřebuji subdoménu http://test.domena.cz přesměrovat do složky test.domena.cz, která je v rootu (na stejné úrovni jako složka s hlavní doménou), ale aby ji nesežral hvězdičkový záznam. |
||
Davex Profil |
#2 · Zasláno: 12. 4. 2011, 23:56:56 · Upravil/a: Davex
Chyba nastane z důvodu zacyklení přepisu - musí se přidat podmínka proti zacyklení. Inspiruj se v tématech
• přesměrování složka -> subdoména • Htaccess a různé domény • htaccess nahradenie domena.sk za automatickú hodnotu |
||
Sylar Profil |
#3 · Zasláno: 14. 4. 2011, 01:00:46 · Upravil/a: Sylar
Davex:
z těch vláken jsem vyzjistil, že tento zápis RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteCond %{HTTP_HOST} ^(?:www\.)?([^.]+\.)?([^.]+\.[^.]+)$ [NC] RewriteRule .* /%1%2/$0 [L] by měl přesměrovávat subdomény abc.example.com do složky - to funguje. Jen ještě drobnost, já bych potřeboval do složky ../abc.example.com protože na mém hostingu jsou složky domén a subdomén následovně /example.com - zde je i výše uvedený kód v htaccessu /subdomain.example.com /another-subdomain.example.com a ještě jak jsem nyní zjistil, tak když dám hlavní doménu (www.)example.com tak mi to hodí chybku o smyčce při přesměrování. |
||
Davex Profil |
#4 · Zasláno: 14. 4. 2011, 19:45:37
Aby pravidla v souboru .htaccess fungovala i pro subdomény, tak musí být hlavní doména i subdomény nasměrovány do stejného prostoru. Pokud budou v oddělených adresářích tak se pravidla v souboru /example.com/.htaccess provedou pouze pro URL s doménou example.com.
Záleží na nastavení webserveru, které nejde přímo ovlivnit. Když nevytvoříš adresáře pro subdomény na stejné úrovni jako adresář example.com, ale jako jeho podadresáře, tak to nepomůže? |
||
Sylar Profil |
#5 · Zasláno: 14. 4. 2011, 21:17:44
Davex:
pomůže a subdomény fungují OK. ale nefunguje mi zase hlavní doména :D :( ... abychom nechodili pořád po slepu tak tato subdoména funguje http://www.abc.eportfolio.cz/ (to, že hází jiné errory prosím přejdi). ale už nefunguje hlavní doména www.eportfolio.cz - smyčka při přesměrování htaccess u hlavní domény obsahuje následující zápis RewriteEngine On RewriteBase / # přesměrování subdomén do složek RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteCond %{HTTP_HOST} ^(?:www\.)?([^.]+\.)?([^.]+\.[^.]+)$ [NC] RewriteRule .* /%1%2/$0 [L] # přesměrování na www RewriteCond %{HTTP_HOST} ^eportfolio.cz RewriteRule (.*) http://www.eportfolio.cz/$1 [R=301,QSA,L] # přesměrovávání z index.php na / RewriteRule ^index\.php$ $1 [R=301,QSA] # cool URL - page RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)/?$ ?page=$1 [QSA] a struktura složek je tedy nyní následující eportfolio.cz - hlavní doména // nefunguje eportfolio.cz/abc.eportfolio.cz/ - subdoména // funguje |
||
Davex Profil |
#6 · Zasláno: 14. 4. 2011, 22:26:02
Toto rozhazování subdomén do podadresářů nemám rád, protože to přináší spoustu problémů.
1) Pokud má hlavní doména zůstat v kořenovém adresáři, tak se nesmí přepisovat do podadresáře. Patří tam přidat podmínka: RewriteCond %{ENV:REDIRECT_STATUS} ="" RewriteCond %{HTTP_HOST} !^(?:www\.)?[^.]+\.[^.]+$ [NC] RewriteCond %{HTTP_HOST} ^(?:www\.)?([^.]+\.)?([^.]+\.[^.]+)$ [NC] 2) V pravidle pro odstranění indexu by mělo být lomítko místo $1
3) Poslední přepisovací pravidlo se bude provádět i na subdoménách, ale ne v kontextu adresáře subdomény, takže v hodnotě parametru page bude i cesta k subdoméně.
4) Pokud tam dochází ke smyčce přesměrování, tak mohou některé pravidla kolidovat, ale www.eportfolio.cz se mi PHP skriptem přesměrovalo na /404. |
||
Časová prodleva: 13 let
|
0