Po přesunu na produkci vše krom homepage vrací 404

grovik
Člen | 54
+
0
-

Myslím, že to je nějaký problém s routováním.
Ale router se nezměnil a na vývojovém prostředí to fungovalo. Nikam se nic nezaloguje jen Apache si zapíše, že byl požadavek a ten se redirektnul a nakonec skončil tou 404.

Doplnění: Index webu se zobrazí (šablona projde atd.) Nefungují až vygenerované odkazy.
(to jsem chtěl napsat ale myšlenky utekly moc rychle).

RouterFactory.php

<?php

declare(strict_types=1);

namespace App\Router;

use Nette;
use Nette\Application\Routers\RouteList;


final class RouterFactory
{
	use Nette\StaticClass;

	public static function createRouter(): RouteList
	{
		$router = new RouteList;
			//$router->addRoute('<presenter>', 'Admin:in');
			$router->addRoute('<sluzby>/<action>', 'sluzby:default');
			$router->addRoute('<admin>/<action>', 'admin:default');
			$router->addRoute('<presenter>/<action>[/<id>]', 'Home:default');


		return $router;
	}
}

.htaccess

# Apache configuration file (see https://httpd.apache.org/docs/current/mod/quickreference.html)
Require all granted

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

# enable cool URL
<IfModule mod_rewrite.c>
	RewriteEngine On
	# RewriteBase /

	# use HTTPS
	# RewriteCond %{HTTPS} !on
	# RewriteRule .? https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

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

	# front controller
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteRule !\.(pdf|js|mjs|ico|gif|jpg|jpeg|png|webp|svg|css|rar|zip|7z|tar\.gz|map|eot|ttf|otf|woff|woff2)$ index.php [L]
</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>

záznam z logu Apache:

2a02:8308:b00b:b200:40c9:2a75:8cc5:4b9 - - [13/Apr/2023:22:05:01 +0200] "GET /sluzby/zivotnipojisteni HTTP/1.1" 404 840 "https://liveproperty.cz/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Geck
2a02:8308:b00b:b200:40c9:2a75:8cc5:4b9 - - [13/Apr/2023:22:05:05 +0200] "GET /sluzby/zivotnipojisteni HTTP/1.1" 301 620 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Saf
2a02:8308:b00b:b200:40c9:2a75:8cc5:4b9 - - [13/Apr/2023:22:05:05 +0200] "GET /sluzby/zivotnipojisteni HTTP/1.1" 404 516 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Saf

Ještě doplním:

  1. pořadí věcí v routeru jsem zkoušel nemělo to na nic vliv.
  2. oba server běží s https
  3. logování jsem zapnul a ale nikde ani pípnutí.

Editoval grovik (13. 4. 2023 23:36)

Marek Bartoš
Nette Blogger | 1177
+
0
-

404 máš z Apache, ne z Nette, takže se ti nedostane vůbec na index. Hádám, že máš ještě jeden .htaccess v rootu a bude chyba v něm

Btw. Vypni si debug mód. Vážně. A změň si pak heslo k databázi.

Editoval Marek Bartoš (13. 4. 2023 22:52)

grovik
Člen | 54
+
0
-

Marek Bartoš napsal(a):

404 máš z Apache, ne z Nette, takže se ti nedostane vůbec na index. Hádám, že máš ještě jeden .htaccess v rootu a bude chyba v něm

Btw. Vypni si debug mód. Vážně. A změň si pak heslo k databázi.

Já vím, že to je hláška od Apache, protože nenašel tu cestu. Jenže logicky nic jiného napsat nemohl.
.htaccess je jen ve složce WWW a ta je root. tzn. vhost je tam jen jeden a ten je namířený přesně tam.

Hesla se budou ještě měnit, to určitě, stejně jako výpisy chyb. To je teď výsledek mého zoufalství. Kdy se snažím zachytit cokoliv co by mohlo někde uplivnout chybu.

Doplnil jsem. Index funguje. Šablony se načtou vygeneruje se index, ale odkazy ze šablon co se vygenerují nefungují potažmo končí na té 404.

Editoval grovik (13. 4. 2023 23:37)

Šaman
Člen | 2635
+
+3
-

Když vše kromě homepage vrací 404, bývá to chybějící, nebo špatně nastavený mod_rewrite. Což může být buď chyba v .htaccess, nebo je vypnutý v nastavení php na serveru.

Editoval Šaman (14. 4. 2023 1:23)

grovik
Člen | 54
+
0
-

Šaman napsal(a):

Když vše kromě homepage vrací 404, bývá to chybějící, nebo špatně nastavený mod_rewrite. Což může být buď chyba v .htaccess, nebo je vypnutý v nastavení php na serveru.

.htaccess
Je vypsaný na začátku. Protože to je jeden z podezřelých.
Mod_Rewrite je pochopitelně zapnutý. To byly první věci co jsem zkoušel.

Mezitím jak jsem to psal jsem dostal nápad.
Takže tohle tomu scházelo a muselo to být v tom virtuál hostu pro HTTPS

<Directory /var/www/web/www>
    Options -Indexes +FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>