The requested URL was not found on this server

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

Mám base presenter, který přesměruje uživatele na login page pokud není přihlášen, bohužel dostanu hlášku

Not Found
The requested URL /test-mvc/www/login/ was not found on this server.
Apache/2.4.9 (Win64) PHP/5.5.12 Server at localhost Port 80

Nainstalováno přes composer na Win7 64b | Wamp server | mod_rewrite na Apachy povolen

Koukal jsem na starší příspěvky, ale nic co jsem zkusil mi nepomohlo

Router

class RouterFactory {

    /**
     * @return \Nette\Application\IRouter
     */
    public static function createRouter() {
        $router = new RouteList();
        $router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
        return $router;
    }
}

/www/.htaccess

<IfModule mod_rewrite.c>
	RewriteEngine On
#	RewriteBase /
	RewriteBase http://localhost/test-mvc/www/
	# 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|map)$ index.php [L]
</IfModule>

Basepresenter

abstract class BasePresenter extends Nette\Application\UI\Presenter {

    public function beforeRender() {
        parent::beforeRender();

        if ($this->getUser()->isLoggedIn()) {
            $this->template->userLogged = $this->user->identity->getId();
        } else {
            $this->template->userLogged = FALSE;
        }
    }

    public function startup() {
        parent::startup();

        if (!$this->getUser()->isLoggedIn() && ($this->getName() !== "Login")) {
            $this->redirect("Login:default");
        }
    }
}

Zkoušel jsem variantu s rewritebase / i bez ní(zakomentováno) + to co je tam ted plná cesta k www, ale vždy stejná hláška

Editoval Joacim (9. 5. 2015 18:25)

David Matějka
Moderator | 6445
+
+1
-

zkus RewriteBase nastavit na /test-mvc/www/

Joacim
Člen | 229
+
0
-
RewriteBase /test-mvc/www/
RewriteBase /
# RewriteBase /

Ani jedna nefunguje, vždy jsem pro jistotu restartoval všechny služby apache

Edituji vždy jen /www/.htaccess

Z logu Apache se nedá nic vyčíst pod WIN

/test-mvc/ mám nastavený v aliasech v apachy(alias adresáře)

Editoval Joacim (9. 5. 2015 20:19)

Namespace
Člen | 81
+
-2
-

Možná se zeptám trošku hloupě, ale máš nainstalované všechny závislosti?

composer install
Joacim
Člen | 229
+
0
-

Používám Netbeans pro vývoj a u projektu po kliknutí pravým se mi nabízí možnosti composeru → instal (no-dev) → to mi vypíše:

Loading composer repositories with package information
Updating dependencies
Nothing to install or update
Generating autoload files
Done.

To byla první věc, kterou vždy dělám, pokud něco nefunguje – jen pro jistotu

Nastavení Apache a aliasů

Alias /test-mvc/ "c:/Users/joacim/test-mvc/"

<Directory "c:/Users/joacim/test-mvc/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
</Directory>

Výběr z httpd.conf

ServerRoot "C:/Utils/wamp/bin/apache/apache2.4.9"

Define APACHE24 Apache2.4

LoadModule rewrite_module modules/mod_rewrite.so
ServerName localhost:80

HostnameLookups Off

DocumentRoot "C:/Utils/wamp/www/"

Adresářová struktura projektu

V .htaccess v rootu nic není (je to pouze pro produkci)

Nemá někdo ponětí v čem by mohla být chyba ? Když nemám v basepresenteru redirect tak nete funguje, ale podstránky už ne. Když jsem přesunul projekt z alias adresáře do složky www apache vše funguje jak má, ale to pro mě není řešení.

Editoval Joacim (10. 5. 2015 15:15)

Joacim
Člen | 229
+
0
-

Tak jsem se s tím „sral“ celej den a nakonec jsem to rozchodil, doufám že můj návod pomůže i ostatním.

Nejprve si zkontrolujte zda máte povolen mod_rewrite a mod_alias.
Používám aliasy jelikož mám hodně různých projektů.

www/.htaccess

<IfModule mod_rewrite.c>

	RewriteEngine On
        RewriteBase /test-mvc/www/
	# + zbytek
</IfModule>

httpd.cong – asi nejdůležitější

<Directory />
    AllowOverride all
    Options Indexes FollowSymLinks
    Require all granted
</Directory>

Include "C:/Utils/wamp/alias/*"

<Directory c:/Users/joacim/test-mvc/>
        AllowOverride all
        Options Indexes FollowSymLinks
        Require all granted
</Directory>

a samotný alias

Alias /scode-mvc/ "c:/Users/joacim/test-mvc/"

<Directory "c:/Users/joacim/test-mvc/">
    Options +Indexes +FollowSymLinks +MultiViews
    Order allow,deny
    Allow from all
</Directory>

Editoval Joacim (10. 5. 2015 21:24)