Ako docielit presmerovanie virtualnych subdomen do hlavnej domeny?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Matúš Matula
Člen | 257
+
0
-

Nech mam domenu example.com, na kt. bezi aplikacia. Routy mam v tvare

<?php
$routes[] = new Route('//[<client>.]example.com/<presenter>/<action>', array(
	'presenter' => 'Default',
	'action' => 'detail',
);
?>

teda pre kazdeho klienta chcem mat virtualnu subdomenu. Ako nastavit Apache (prip. .htaccess) aby mi poziadavky z neexistujucej subdomeny napr. client1.example.com presmerovalo na index v example.com, kde by ich spracovalo uz Nette?

Filip Procházka
Moderator | 4668
+
0
-

V Apache2 jsou tzv VirtualHosty

<VirtualHost *:80>
	ServerName example.com
	ServerAlias www.example.com *.example.com

	ServerAdmin admin@example.com

	DocumentRoot /var/www/example.com/document_root
...

Více info na http://httpd.apache.org/…/2.0/vhosts/

Důležité je, mít nějaké DNS, které zařídí, že všechny subdomény se ti systém správně nasměrují na apache.

Matúš Matula
Člen | 257
+
0
-

Dik, virtualHosty som mal nastavene, akurat som zabudol na to DNS..na locale som to poriesil, teraz uvidim, co dokazu borci na supporte :D

bojovyletoun
Člen | 667
+
0
-

Ahoj, mám problém: Chtěl jsem si zprovoznit aplikaci na url využívající proměnné domény 3. řádu. (neco.webik.loc) — bezmu to od začátku:

  • nastavení DNS:
    • Musel jsem využít dns server, protože hosts ve windows neumí zapsat 127.0.0.1 *.webik.cz.
    • Využil jsem Acrylic DNS proxy. Aby fungovalo, musel jsem v konfigu AcrylicConfiguration.ini upravit LocalBindingAddress=0.0.0.0LocalBindingAddress=127.0.0.1.
    • Přidal jsem do AcrylicHosts.txt 127.0.0.1 *.loc
    • Nastavil Ve windows DNS server na 127.0.0.1
    • I když jsem v AcrylicConfiguration.ini nastavil primární dns svůj router nebo opendns, nefunguje připojení k netu**. (Wireshark zjistil, že se neposílají žádné dns po ethernetu), ale v logu acrylic je, že dotaz byl forwardován.
  • Apache:
    • routování na subweby jede.
    • **problém: chci zjistit odněkud „webik1.loc“. (tedy to co je definováno v ServerName). $_SERVER[‚SERVER_NAME‘ a ‚HTTP_HOST‘] hážou vždy celého hosta (pepa.webik1.loc)
    • .cong:
  • za další jenom kosmetická:
    • jak zapsat do routy parametr subdomeny tak, aby se v odkazech nemazal?

$router[] = new Route("//[<dom>.]".$ServerName."/<presenter>/<action>", "Hoch:default")

NameVirtualHost 127.0.0.1

ServerName nonset.cc # jen fallback,
ServerAdmin Nonset
DocumentRoot c:/web/htdocs/default

<VirtualHost 127.0.0.1:*>
# trap
	ServerName  nonsettr.cc #fallback č.2,
	ServerAdmin NonsetTr
	DocumentRoot c:/web/htdocs/defaulttr
</VirtualHost>

<VirtualHost 127.0.0.1:*> # project 1
        ServerName webik1.loc
        ServerAdmin Kardinál
        ServerAlias *.webik1.loc
        DocumentRoot "c:/web/htdocs/examples/faceboch"
</VirtualHost>