Route – „krásné adresy“

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

Na toto téma je tu obrovská spousta diskuzí. Procházím je od rána a to co nechápu jsem nenašel a proto prosím o vysvětlení. V bootstrap.php jsem nastavil routy podle návodu v quick startu. V šabloně jsem použil příkazy link. Stránka se načte a odkazy jsou na „krásné adresy“. Problém nastane po odkliknutí odkazu, protože stránka neexistuje. Co zajišťuje zpětné vyhodnocení „krásné adresy“? Nebo jsem jako vždycky úplně mimo? Omlouvám se za triviání dotaz. Díky Standa.

Honza Kuchař
Člen | 1662
+
0
-

Musíš mít v document_root .htaccess. → Apache musí mít povolený mod_rewrite. Případně správně nakonfigurované IIS.

Majkl578
Moderator | 1364
+
0
-

Nemáš zakázaný .htaccess, mod_rewrite nebo nenastavenou RewriteBase?

//edit: pozdě, ale přece… :)

Editoval Majkl578 (15. 4. 2010 13:59)

scerny
Člen | 25
+
0
-

Ten tam mám, ale asi takto vypadat nemá, co?

# 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 /

        #RewriteLog "/home/httpd/html/standa/TodoList/document_root/rewrite.log"
        #RewriteLogLevel 9

	# 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>

Editoval scerny (15. 4. 2010 14:08)

Honza Kuchař
Člen | 1662
+
0
-
  1. nastav RewriteBase
  2. zkontroluj si, jestli vůbec je .htaccess povolen

//EDIT: Jinak zdá se, že je to dobře.

Editoval honzakuchar (15. 4. 2010 14:10)

scerny
Člen | 25
+
0
-

Rád bych všem poděkoval za pomoc.

Malá rekapitulace:
Zapnutí využívání .htaccess v konkrétních adresářích webu:
V nastavení Apache → httpd.conf sekce Directory:

<Directory "c:/web_apache">
    ...
    AllowOverride All
    ...
</Directory>

Protože testovací web mám v podadresáři tak je potřeba upravit RewriteRule v souboru .htaccess například takto:

RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ /TodoList/document_root/index.php [L,QSA]
A už to maká jak má. Standa.
Honza Kuchař
Člen | 1662
+
0
-

scerny napsal(a):

Protože testovací web mám v podadresáři tak je potřeba upravit RewriteRule v souboru .htaccess například takto:

RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ /TodoList/document_root/index.php [L,QSA]
A už to maká jak má. Standa.

Tady by měl pomoci RewriteBase

iguana007
Člen | 970
+
0
-

honzakuchar napsal(a):
Tady by měl pomoci RewriteBase

Přesně jak říká Honza. Dej před tu definici v htaccess ještě jeden řádek:

RewriteBase /TodoList/document_root/

V té definici tu cestu smaž a mělo by to běžet.

scerny
Člen | 25
+
0
-

Ano, máte pravdu, to je lepší řešení.
Díky moc.
 Standa