Proč Nette přesměrovává z example.com na www.example.com?

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

Mým cílem je používat všude pouze variantu http://example.com (bez lomítka na konci) a přesměrovávat na ní z http://www.example.com, ale Nette mi dělá přesný opak a nevím proč.

Můj htaccess:

<IfModule mod_rewrite.c>
	RewriteEngine On
	# RewriteBase /

	# prevents files starting with dot to be viewed by browser
	RewriteRule /\.|^\. - [F]

	# front controller
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>
...

Můj router:

$router = new RouteList();
$router[] = new Route('index.php', 'Front:Default:default', Route::ONE_WAY);

$adminRouter = new RouteList('Admin');
$adminRouter[] = new Route('admin/<presenter>/<action>[/<id>]', 'Default:default');
$router[] = $adminRouter;

$frontRouter = new RouteList('Front');
$frontRouter[] = new Route('en/<presenter>/<action>[/<id>]', 'Default:default', Route::ONE_WAY);
$frontRouter[] = new Route('[<lang [a-z]{2}>/]<presenter>/<action>[/<id>]', 'Default:default');
$router[] = $frontRouter;

return $router;

Zkusil jsem tedy upravit nejdříve htaccess na:

<IfModule mod_rewrite.c>
	RewriteEngine On
	# RewriteBase /

	RewriteCond %{HTTP_HOST} ^www\.
	RewriteRule ^.*$   http://example.com/$0  [R=301,NE,L]

	# prevents files starting with dot to be viewed by browser
	RewriteRule /\.|^\. - [F]

	# front controller
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>
...

⇒ Redirect Loop

Tak jsem našel na fóru řešení pomocí routy

$router = new RouteList();
$router[] = new Route('index.php', 'Front:Default:default', Route::ONE_WAY);

$router[] = new Route("//[www!].example.com", "Homepage:default", Route::ONE_WAY);
...

A voalá pro www.example.com opět vede na Redirect Loop.
Co dělám špatně?

Díky

Editoval tajo (3. 4. 2013 8:57)

h4kuna
Backer | 740
+
0
-

Tohle Nette nativně nedělá. To musí být jinde. Kde to zkoušíš?

Už jsem zažil že přesměrování non-www na www variantu měl hosting jako výchozí chování, takže jsi musel do administrace a tam to vypnout.

tajo
Člen | 20
+
0
-

Blueboard hosting

newPOPE
Člen | 648
+
0
-

Nemas nahodou Firefox? Ten to tiez robi tak nejak sam :-).

tajo
Člen | 20
+
0
-

Mám Chrome, taky mě to napadlo. Ale třeba nette.org mi to nedělá.

Majkl578
Moderator | 1364
+
0
-

Nette doména nezajímá, pokud není uvedena v routě. Tudíž hledej problém tam nebo v htaccessu (nebo obojím, vzájemně nekompatibilním).

tajo
Člen | 20
+
0
-

Routy i htaccess je v prvním příspěvku (jeho zbytek je shodný se sandboxem). Fakt už nevím, kde hledat problém.

Majkl578
Moderator | 1364
+
0
-

Můžeš ve Firebugu/konzoli ověřit, zda přesměrování způsobuje Nette nebo Apache? Pokud to dělá Nette, v odpovědi při přesměrování by měla být hlavička X-Powered-By: Nette Framework.

tajo
Člen | 20
+
0
-

Požadavek a odpověď:

GET / HTTP/1.1
Host: fundchaser.cz
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3

HTTP/1.1 301 Moved Permanently
Date: Wed, 03 Apr 2013 21:38:47 GMT
Server: Apache
Location: http://www.fundchaser.cz/
Content-Length: 233
Connection: close
Content-Type: text/html; charset=iso-8859-1

Takže hádám, že je načase napsat blueboardu?

enumag
Člen | 2118
+
0
-

Takže hádám, že je načase napsat blueboardu?

Ano, myslím že ten problém bude v jejich nastavení apache.