Cool URL na vlastním VPS, stejný htaccess jako na localhostu

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

Zdravím,

na VPS mám apache2.4 a mod_rewrite je povolený.
.HTACCESS:

# configure PHP
php_flag magic_quotes_gpc off
php_flag register_globals off

# mod rewrite
RewriteEngine On
RewriteBase /

# prevents files starting with dot to be viewed by browser
RewriteRule /\.|^\.(?!well-known/) - [F]

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

<IfModule mod_autoindex.c>
	Options -Indexes
</IfModule>

# enable gzip compression
<IfModule mod_deflate.c>
	<IfModule mod_filter.c>
		AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/javascript application/json application/xml image/svg+xml
	</IfModule>
</IfModule>

A cool url nefunguje…

V logu (access log i error log) jsou prázdné a to jak doménové tak hlavní logy samotného apache.

Aplikaci mám sice dost vlastní ale na localhostu mi cool url jede, přihazuju RouterFactory:

<?php
namespace App;
use Nette;
use Nette\Application\Routers\RouteList;
use Nette\Application\Routers\Route;
class RouterFactory
{
	/**
	 * @return Nette\Application\IRouter
	 */
	public static function createRouter()
	{
            $router = new RouteList();

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

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

            $router[] = $frontRouter = new RouteList('Front');

            $frontRouter[] = new Route('<presenter>/<action>/<id>', [
                'presenter' => 'Blog',
                'action' => 'page',
                'id' => NULL
                ]);
            $frontRouter[] = new Route('blog/', 'Blog:page', Route::ONE_WAY);
            $frontRouter[] = new Route('post/<id>', 'Blog:post', Route::ONE_WAY);
            //$router[] = new Route('rss.xml', 'Base:Feed:rss');
            return $router;
	}
}
Mysteria
Člen | 797
+
0
-

Nette Checker říká na nastavení Mod Rewrite co?

Jan Mikeš
Člen | 771
+
0
-

Nefunguje jak, generuji se url typu ?presenter=… Nebo se zobrazuje defaultni error apache?

theacastus
Člen | 81
+
0
-

@Mysteria checker říká že nejde htaccess a v něm i mod_rewrite (to by se dalo vyřešit přesunutím <IfModule mod_rewrite.c> … do virtualhostu). Viz http://scr.vojtamares.cz/…17-25-03.png

@Lexi nefunguje že hází defaultní error apache, že odkaz na adrese /intro/contact nebyl nalezen. Ostatně můžeš to zkusit: http://www.vojtamares.cz/intro/contact

Mysteria
Člen | 797
+
0
-

Já když začínal s VPS, tak jsem sice měl zapnutý Mod Rewrite, ale neměl jsem ho povolený přímo ve VirtualHostu:

<VirtualHost>
	<Directory /var/www/>
		Options -Indexes
		AllowOverride All
    </Directory>
	DocumentRoot /var/www
</VirtualHost>
theacastus
Člen | 81
+
0
-

Už jsem si pohrál s „Directory“ a vše funguje. Jen se rozhodily styly a nemám zdání proč :D

Ale to už vyřeším.
Díky všem a hlavně @Mysteria