Nastavení Nette pro webhosting

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

Přešel jsem na webhosting aerohosting.cz a oproti freehostingu, který jsem používal do té doby, tady nette nefunguje tak, jak bych potřeboval. Momentálně vypadá můj .htaccess soubor takto:

# disable directory listing
<IfModule mod_autoindex.c>
	# Options -Indexes
</IfModule>

# enable cool URL
<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>

# enable gzip compression
<IfModule mod_deflate.c>
	AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript text/javascript application/javascript application/json
</IfModule>

a moje RouterFactory.php takto:

class RouterFactory
{

	/**
	 * @return \Nette\Application\IRouter
	 */
	public function createRouter()
	{
		$router = new RouteList();

		\NetteOpauth\NetteOpauth::register($router);
		$router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);

		$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
		return $router;
	}

}

a když přistoupím na web, vyhodí chybu 403. Jelikož mi routování nikdy obzvlášť nešlo, mohl by mě prosím někdo navést správným směrem a poradit, co mám přepsat?

EDIT: po přidání /www/ za adresu se dostanu na Homepage, ale z ní to přes odkazy už dál nejde.

Editoval 2rec (25. 4. 2014 0:57)

Tomáš Kolinger
Člen | 136
+
0
-

Tohle není o routování aplikace ale o směřování požadavků na index.php.

Kde máš umístěn htaccess? Zkus si přečíst FAQ https://doc.nette.org/…ubleshooting#… to je přesně tvůj problém

2rec
Člen | 40
+
0
-

Tomáš Kolinger napsal(a):

Tohle není o routování aplikace ale o směřování požadavků na index.php.

Kde máš umístěn htaccess? Zkus si přečíst FAQ https://doc.nette.org/…ubleshooting#… to je přesně tvůj problém

Ten, co jsem vypsal nahoře, mám ve /www/ složce, ale teď jsem podle tvojí rady přidal do / složky ten .htaccess z https://doc.nette.org/…ubleshooting#… a přidal RewriteBase /

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(tamaty\.)?yellowjello\.cz$
RewriteRule ^$ www/ [L]
RewriteCond %{HTTP_HOST} ^(tamaty\.)?yellowjello\.cz$
RewriteRule (.*) www/$1 [L]

a funguje mi přístup na úvodní stránku i přes tamaty.yellowjello.cz. Nicméně to je vše, protože po kliknutí na odkaz to vyhodí error 500 (…jello.cz/games/pexeso).

Nebudu snad muset dávat .htaccess do každe podložky ve /www/, ne? Nebo je to chyba mod_rewrite? Měl by být na tom hostingu povolený.

Editoval 2rec (25. 4. 2014 10:28)

2rec
Člen | 40
+
0
-

Odpověď: jak do root složky, tak do /www/ složky přidat RewriteBase /