Localhost funguje, ale na ostrým serveru mám 404, krom výchozí routy
- Lawondyss
- Člen | 106
Potřebuju pomoci s routováním na ostrém serveru. Na localhostu všechno funguje, ale jen co jsem to nahrál na server, tak krom výchozí adresy, která je v routě, vidím jen 404. Ale ne tu od Nette. Produkční server běží přes HTTPS.
bootstrap.php
#$application->errorPresenter = 'Error';
$application->catchExceptions = FALSE;
$router[] = new NRoute('index.php', array(
'presenter' => 'Login',
'action' => 'default',
), NRoute::ONE_WAY);
$router[] = new NRoute('<presenter>/<action>/<id>/<section>/<sid>', array(
'presenter' => 'Login',
'action' => 'default',
'id' => NULL,
'section' => NULL,
'sid' => NULL,
), IRouter::SECURED);
.htaccess
# disable directory listing
# Options -Indexes
# configure PHP
# <IfModule mod_php5.c>
# php_flag magic_quotes_gpc off
# php_flag register_globals off
# php_flag zend.ze1_compatibility_mode off
# </IfModule>
# mod_rewrite
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
# front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>
- Filip Procházka
- Moderator | 4668
zkus
$flags = $application->context->httpRequest->isSecured()? IRouter::SECURED : 0;
$router[] = new Route('...', array(
...
), $flags);
- Vyki
- Člen | 388
Když dáš pryč značky <IfModule mod_rewrite.c>
a
</IfModule mod_rewrite.c>
vyhodí to pak chybu 500? Jestli jo
není mod_rewrite vůbec na serveru přítomen nebo spuštěn. Jestli zo
500 nevyhodí, je to chyba v konfiguraci mod_rewrite. Třeba u Onebit.cz
mod_rewrite funguje až ve chvíli, kdy ho v administraci povolíš, jinak je
defaultně vypnutý.
- nanuqcz
- Člen | 822
Vyki napsal(a):
Když dáš pryč značky
<IfModule mod_rewrite.c>
a</IfModule mod_rewrite.c>
vyhodí to pak chybu 500? Jestli jo není mod_rewrite vůbec na serveru přítomen nebo spuštěn. Jestli zo 500 nevyhodí, je to chyba v konfiguraci mod_rewrite. Třeba u Onebit.cz mod_rewrite funguje až ve chvíli, kdy ho v administraci povolíš, jinak je defaultně vypnutý.
Za předpokladu, že má povolený .htaccess
- Filip Procházka
- Moderator | 4668
Základní správné nastavení pro virtualhost (předpokládám apache2):
<VirtualHost 127.0.0.1:80>
ServerName sezeretepes.loc
ServerAlias www.sezeretepes.loc *.sezeretepes.loc
ServerAdmin HosipLan@gmail.com
DocumentRoot /home/hosiplan/develop/projects/sezeretepes.cz
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/hosiplan/develop/projects/sezeretepes.cz>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Ověř si hlavně ty AllowOverride
a taky jestli je mod_rewrite
načtený.
hosiplan@hosiplan-book:/etc/apache2/mods-enabled$ ls -l |grep rew
lrwxrwxrwx 1 root root 40 2011-02-13 12:13 rewrite.load -> /etc/apache2/mods-available/rewrite.load