Routování administrace – nefunguje

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

Mám takový menší problém, který zde sice byl omílán tisícekrát, ale i po přečtení spousty threadů nejsem o moc moudřejší. Možná to bude tím, že jsem v Nette absolutní začátečník.

Jak již napovídá název threadu, nefunguje mi routování do administrace. Jako základ jsem si vzal skeletona z verze nette-0.9-PHP-5.2 a přidal dle doporučované adresářové struktury složku AdminModule se soubory DefaultPresenter.php a @layout.phtml a Default.default.phtml do složek presenter a templates.

Mé routy v bootstrap.php vypadají následovně:

<?php
$router = $application->getRouter();

$router[] = new Route('index.php', array(
	'presenter' => 'Homepage',
	'action' => 'default',
), Route::ONE_WAY);

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

$router[] = new Route('admin/<presenter>/<action>/<id>', array(
        'module' => 'Admin',
        'presenter' => 'Default',
        'action' => 'default',
        'id' => NULL
));
?>

V prohlížeči mám error 404. Error log píše [Sat Nov 07 00:41:31 2009] [error] [client 192.168.1.111] File does not exist: /home/amaranth/htdocs/pajousek.info/chata/chata

Verze PHP je php-5.2.10-r2, apache 2.2.12.
Na dokument se snažím přistupovat přes http://chata.pajousek.info/…t_root/admin

Předem děkuju za jakoukoliv pomoc, jsem už bezradný.

Editoval Pajka (7. 11. 2009 11:27)

sodae
Nette Evangelist | 250
+
0
-

prohod ty dvě podmínky ;-)
jako 1. admin/ a pak až front

Editoval sodae (7. 11. 2009 9:43)

Pavel Kouřil
Člen | 128
+
0
-

Jestli se prohozením podmínek myslí hodit $router[] s adminem na první pozici, tak to nepomáhá. A nepomáhá to ani na druhé pozici.
Jen to při přístupu na /document_root/admin/ hodí 404, při přístupu na /document_root/ to přesměruje na /document_root/admin/homepage/ a také vyhodí 404ku.

Majkl578
Moderator | 1364
+
0
-

.htaccess funguje jak by měl?

Pavel Kouřil
Člen | 128
+
0
-

Tak jsem vyzkoušel i různé jednoduché redirecty a zjistil jsem, že .htaccess nefunguje jak by měl.
Tady je ukázka mého nastavení pro vhost, bohužel vůbec nevím, kde by mohla být chyba. Asi někde v tom rewrite, ale jak to řešit?

<VirtualHost *:80>
ServerName pajousek.info
ServerAlias *.pajousek.info
UseCanonicalName Off
DocumentRoot /home/amaranth/htdocs/pajousek.info
ErrorLog /var/log/apache2/error_log_pajousek.info
CustomLog /var/log/apache2/access_log_pajousek.info vhost

<IfModule mod_php5.c>
php_admin_value session.save_path "/home/amaranth/tmp/"
php_admin_value upload_tmp_dir "/home/amaranth/tmp/"
</IfModule>

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^pajousek.info
RewriteCond %{REQUEST_URI} !awstats
RewriteRule ^(.*)$ /www/$1 [L]

RewriteCond %{HTTP_HOST} ^(.*)\.pajousek\.info
RewriteCond %{REQUEST_URI} !awstats
RewriteRule ^(.*)$ /%1/$1 [L]
</IfModule>
</VirtualHost>

<Directory /home/amaranth>
Options -Indexes FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>