Presun aplikacie na ostry server – problem s routovanim?
- jurajp
- Člen | 7
Ahojte,
presuvam aplikaciu na ostry server a mam takyto problem:
Po zadani adresy www.ostryserver.sk ma preroutuje na www.ostryserver.sk/sk/ ale to vrati 404 not found.
Kym som to mal na dev serveri pod adresou www.devserver.sk/nazovapp/www/ tak ma tiez preroutovalo na www.devserver.sk/…vapp/www/sk/ a vsetko krasne islo.
Ked dam na ostrom serveri adresu www.ostryserver.sk/index.php/ tak to ma preroutuje na www.ostryserver.sk/index.php/sk/ kde sice web ide ale nie su nacitane css atd. lebo to berie z adresy www.ostryserver.sk/…s/screen.css
Moj Router vyzera takto:
<?php
public function createRouter() {
$router = new RouteList();
$router[] = new Route('<lang>/<presenter>/<action>[/<id>]', array(
'presenter' => 'Index',
'action' => 'default'
));
$router[] = new Route('<presenter>/<action>[/<id>]', array(
'lang' => $this->defaultLang,
'presenter' => 'Index',
'action' => 'default',
));
return $router;
}
?>
a htaccess vyzera takto:
<?php
# Apache configuration file (see httpd.apache.org/docs/current/mod/quickreference.html)
# disable directory listing
<IfModule mod_autoindex.c>
Options -Indexes
</IfModule>
# enable cool URL
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /
# 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)$ index.php [L]
</IfModule>
# enable gzip compression
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css application/x-javascript text/javascript application/javascript application/json
</IfModule>
?>
Na dev serveri je rovnaky router aj htaccess v tom foldri kde to ide.
Co robim prosim zle? co mi chyba? nejake nastavenie na serveri alebo priamo v app? je to prva nette appka co davam von tak neviem co robim zle.
Vdaka.
Juraj
- chemix
- Nette Core | 1310
me obcas pomaha (nevim cim to, zalezi na hostingu) ze odkomentuji direktivu „RewriteBase /“
osobne ale doporucuji si na lokalnim pocitaci zprovoznit virtualni servery (pokud jedes pod apachem) a pouzivat treba ostryserver.loc (loc = jako localhost ;-) k nemu i alias www.ostryserver.loc a nezapomenout zapsat do hosts (\etc\hosts unix, nebo na win je to win/system32/etc/drivers/hosts ±)
v apachi mam pak neco ala:
<VirtualHost *:80>
DocumentRoot "/Sites/knowledgebase/www/
ServerName knowledgebase.loc
ServerAlias www.knowledgebase.loc
ServerAlias knowledgebase.192.168.1.111.xip.io
</VirtualHost>
a na lokalni masine pak jedu web v prohlizeci : www.knowledgebase.loc a vse je defakto stejne jako na produkci (krome koncove domeny)