error 500 na produkčním serveru místo 400 (nejde upravit root)

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

Ahoj, mám takový poblém. Na produkčním serveru se mi do logu zapíše BadRequestException, ale zobrazí to error 500 šablonu. Používám nette 2.4. Na hostingu nelze změnit root, tak mám htaccess. Nemělo by fungovat, že pokud zadám domena.cz/index.php tak se zobrazí home nebo se tam aspoň přesměruje? Díky za rady

RewriteEngine On
RewriteBase /


RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{ENV:HTTPS} !^.*on
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

RewriteRule ^(.*)$ www/$1 [L]
public static function createRouter()
	{
		$router = new RouteList;
		$router[] = new Route('[\'index.php\',\'index.html\']', 'Homepage:default', Route::ONE_WAY);

		$router[] = new Route('[<locale=cs cs|en>/]sign/<action>', 'Sign:', Route::ONE_WAY);


        $admin = new RouteList('Admin');
        $admin[] = new Route('[<locale=cs cs|en>/]admin/<presenter>/<action>[/<id>]','Dashboard:default');
        $router[] = $admin;

        $web = new RouteList('Web');
        $web[] = new Route('[<locale=cs cs|en>/]<presenter>/<action>[/<id>]', 'Homepage:default');
        $router[] = $web;

        $router[] = new Route('[<locale=cs cs|en>/]<presenter>/<action>[/<id>]', 'Homepage:default');

        return $router;
	}

Editoval jarda256 (3. 1. 2017 0:14)

CZechBoY
Člen | 3608
+
0
-

Tu prvni routu bych videl ze se nikdy nematchne… Zkus to takhle

$router[] = new Route('index.[php][html]', 'Homepage:default', Route::ONE_WAY);
jarda256
Člen | 130
+
0
-

@CZechBoY Děkuju a nevěděl bys, čím je to že nedostanu nikdy 4xx ale vždycky 500?

CZechBoY
Člen | 3608
+
0
-

A jakou exception ti to vygeneruje? Muzes poslat screen z rsod?

jarda256
Člen | 130
+
0
-

@CZechBoY Tak ono je asi jedno jaka chyba se stane. Ale když vznikne chyba presenter not found, tak by to mělo vyhodit 404? nebo snad ne

Jan Mikeš
Člen | 771
+
0
-

Můžeš mít chybu v error presenteru a to je důvod proč namísto 4xx to hází 500, podívej se do logu na produkci, taktéž si vyzkoušej vypnout debug mod na na lokalu a zadat nějakou neexistující URL jestli dostaneš 404 nebo ne.

David Grudl
Nette Core | 8239
+
+1
-

Pro ověření, jestli v error presenteru není chyba, přidej do konfigurace:

application:
	catchExceptions: yes
jarda256
Člen | 130
+
0
-

Ahoj, tak jsem to nějak poupravil a teď už na špatné url dostanu chybu ze šablony 4xx.latte. Jak tam dostanu aby tam byla fakt ta 404?