problém na produkčním serveru funguje pouze default stránka
- Domki
- Člen | 310
Mám ještě jeden problém když jsem nahral aplikaci na net.
Uvodní stránka se zobrazuje správně, ale když chci zobrazit jakoukoliv
jinou pomoci odkazu tak to nejde a vypíše se:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@info.cz and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Cím to je? kvůli routám?
Ty mám takto:
// Setup router
$container->router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$container->router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
$container->router[] = new Route('<presenter>/<action>[/<id>][/<varianta>]', 'Homepage:default');
$container->router[] = new Route('images/<size>/<filename>', array(
'presenter' => 'Images',
'action' => 'resize'
));
Nastavoval jsem je nák tak pomoci qs a dokumentace tak nevím jestli třeba tady není chyba
jinak odkaz mám např <a n:href=„Static:onas“>o nás</a>
Editoval Domki (26. 8. 2012 21:16)
- castamir
- Člen | 629
Zkus v souboru .htaccess v root adresáři zakomentovat/smazat vše krom následujících řádků:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>
- Domki
- Člen | 310
No můj soubor co sem tam měl vypadal takto:
# Apache configuration file (see httpd.apache.org/docs/2.2/mod/quickreference.html)
# disable directory listing
Options -Indexes
# enable cool URL
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteBase /
# front controller
RewriteRule ^$ /www/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|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>
# allow combined JavaScript & CSS. Inside of script.combined.js you could use <!--#include file="script.js" -->
<IfModule mod_include.c>
<FilesMatch "\.combined\.(js|css)$">
Options +Includes
SetOutputFilter INCLUDES
</FilesMatch>
</IfModule>
Když jsem tam vložil přesně to co jsi psal tak mi nešla ani úvodní stránka Tak jsem k tomu tvymu pripsal radek Takto:
# Apache configuration file (see httpd.apache.org/docs/2.2/mod/quickreference.html)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^$ /www/ [L] -- toto je ten přidanej řadek k tomu cos psal ty (bez nej nesla ani uvodni stranka)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>
Takto se mi zobrazuje uvodní stranka Homepage, ale kdyz kliknu na odkaz na
jinou stranku tak se nyní zobrazí Chyba / Error 404
Objekt nenalezen! / Object not found! generovaná Webhostingem
Jinak ještě nevím jestli to nemůže být strukturou mam na webhostinu
zalozenou subdomenu
a v ní slozky app,libs, log, temp, www a soubor .htaccess
ve slozce www sobor index.php
ve slozce app soubor bootstrap.php
Editoval Domki (27. 8. 2012 8:42)
- Domki
- Člen | 310
Aha
Toto by mohla být příčina?
.htaccess mod_rewrite Disabled
Mod_rewrite is probably not present. You will not be able to use Cool URL.
Kde to na serveru povolím,
Myslím ze na localhostu sem neco upravoval v xampp/php/.....
Kde to změním na webhostingu?
Edit: ted sem nasel na webhostingu ve FAQ:
8) Podporujete mod_rewrite a je možné si jej případně nastavit přímo přes .htaccess?
Ano mod_rewrite podporujeme a je možné si toto nastavovat v souboru .htaccess.
RewriteEngine On
A na ulozisti mám soubor htaccess :
# Apache configuration file (see httpd.apache.org/docs/2.2/mod/quickreference.html)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^$ /www/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|png|css|rar|zip|tar\.gz)$ index.php [L]
</IfModule>
Kde toto RewriteEngine On je povolený, nebo v čem mám chybu?
Editoval Domki (27. 8. 2012 16:35)
- David Matějka
- Moderator | 6445
ten .htaccess s konfiguraci rewrite modu ma byt ve www.
dalsi soubory .htaccess v app, temp atd. zabranuji pristupu pres web
k souborum, ke kterym by se nikdo z venku dostat nemel :)
Editoval matej21 (27. 8. 2012 20:15)
- David Matějka
- Moderator | 6445
ne, spatne jsem to zformuloval. mela tam byt spis tecka nez carka :)
v app, temp atd. ma byt .htaccess s
Order Allow,Deny
Deny from all
ve www .htaccess asi takovej:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|css|rar|zip|tar\.gz)$ index.php [L]
- castamir
- Člen | 629
Pokud nepoužíváš moduly a chceš stránky otestovat i bez cool url, tak obal routy v bootstrap.php do následující podmínky:
// Setup router
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {
$container->router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$container->router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
} else {
$container->router = new SimpleRouter('Homepage:default');
}
Zakomentuj si ale mod-rewrite v htaccess, abys měl jistotu, že ho nepoužíváš.
- David Matějka
- Moderator | 6445
a kde je root pro domenu? kdyz zadas www.domena.tld, tak je root v rootu aplikace, nebo v te slozce www? (snad jsem to napsal srozumitelne) :)
- David Matějka
- Moderator | 6445
root domeny (zakladni slozka pro www.domena.tld) by mel byt nejlepe na slozku www, v rootu aplikace by nemel byt zadny .htaccess a ve slozce www ten uvedeny vyse.
pokud vsak neni jiny reseni, nez mit root domeny v rootu aplikace, tak je nejjednodussi asi proste nakopirovat i index.php a celej obsah www (css, obrazky..) do rootu aplikace
- Domki
- Člen | 310
Aha to sem nevěděl
Takže v rootu
by mel byt .htaccess
jen s řádkem:
RewriteRule ^$ /www/ [L]
A ve www
pak s obsahem:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(pdf|js|ico|gif|png|css|rar|zip|tar\.gz)$ index.php [L]
to mi ale vypisuje chybu 403
- David Matějka
- Moderator | 6445
v rootu by nemel byt zadny .htaccess a zakladni adresar domeny (verejne pristupny pres www.domena.tld) by mel byt na tu slozku www
pokud to ale nejde, tak do rootu aplikace (tj na uroven slozek app, temp..) presunout obsah slozky www (index.php, .htaccess, css, js…)
takze se nejdriv ujisti, kde je ta verejna slozka pro domenu, zkus tam nahrat jen nejaky index.html
Editoval matej21 (27. 8. 2012 20:46)
- Domki
- Člen | 310
Index mam ve složce www
No vzhledem k tomu že co se tyce .htaccess vubec nevím co v tom znamena, tak
bych to potřeboval napsat aby to jelo, (jo asi by bylo lepší se to naučit,
ale ted bych rád rozchodil ten web)
Když mám strukturu:
-public_html
-sandbox
-app
-libs
-log
-temp
-tests
-www
-adminer
----
-css
----
-images
----
-js
----
-.htaccess
-index.php
-robots.txt
-web.config
-.htaccess
Tak co mám vložit do toho prvního a druhýho souboru .htaccess?
- 22
- Člen | 1478
máš to napsané tady, cesty si tam musíš napsat svoje, je to na 30 min základy .htaccess, takže nechapu, proč se na ně nepodíváš, já ti to tu vysvětlovat nebudu a netýká se to ani Nette…
Edit: Do toho public_html musíš dát něco podobného, jako je uvedeno zde
tedy serveru sdělit, že se má přesunout do sandbox/www
Editoval 22 (27. 8. 2012 21:37)
- Domki
- Člen | 310
No to by možná taky ted slo
a to ten .htaccess v rootu subdomeny
musím nechat toto:
RewriteRule ^$ /www/ [L]
A pak jen upravím routy dle tohoto:
https://doc.nette.org/…tion/routing#…
?
Nebo pak musim predelavat i vsechny odkazy?
Editoval Domki (27. 8. 2012 21:57)
- Domki
- Člen | 310
Tak jsem se dopoledne koukal na .htacces
Ten sandbox už sem rozběhal i odkaz na adminer
to samí se mi podařilo potom i u tý mý aplikace
Nic méne zatím mam jen .htaccess v rootu subdomeny, na ty mi aplikaci mi
funguje uvodni stranka, nebo kdyz zadam do url adminer, tak i adminer na
mysql
Ale ten adminer je ve slozce www.
Ale jiny odkazy mi porad jeste nefungujou.
Co stím? musím udělat ještě jeden .htaccess který dam do složky www kde
je i index?
A co má obsahovat? Tam musím tak odkázat na slozku app kde jsou presentery a
sablony?
Editoval Domki (28. 8. 2012 13:26)
- TheNEoo
- Člen | 75
Domki napsal(a):
Co je to blbost premistit to primo do
slozky newtest a ne jeste do www? jak mi psali?
www slozku si prehraj do rootu, aby ti vzniklo toto:
root(hostingu)
–app
–css
–images
–js
–libs
–log
–temp
–index.php
–web.config
–.htaccess
–a dalsi
v index.php
<?php
// absolute filesystem path to this web root
define('WWW_DIR', __DIR__);
// absolute filesystem path to the application root
define('APP_DIR', WWW_DIR . '/app');
// absolute filesystem path to the libraries
define('LIBS_DIR', WWW_DIR . '/libs');
// uncomment this line if you must temporarily take down your site for maintenance
// require APP_DIR . '/templates/maintenance.phtml';
// load bootstrap file
require APP_DIR . '/bootstrap.php';
.htaccess v rootu
# Apache configuration file (see httpd.apache.org/docs/2.2/mod/quickreference.html)
# disable directory listing
Options -Indexes
# enable cool URL
<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>
# 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>
# allow combined JavaScript & CSS. Inside of script.combined.js you could use <!--#include file="script.js" -->
<IfModule mod_include.c>
<FilesMatch "\.combined\.(js|css)$">
Options +Includes
SetOutputFilter INCLUDES
</FilesMatch>
</IfModule>
pokavad v dalsich adresarich treba app nemas .htaccess tak ho tam nahraj s timto. Zamezi pristupu do adresare
Order Allow,Deny
Deny from all
melo by ti to jet s puvodni tvoji aplikaci, ja to takto pouzivam bez problemu. Mod rewrite maj povolenej vsude, mas jen nekde botu v nastaveni.
Editoval TheNEoo (28. 8. 2012 23:24)