Requirements Checker zle deteguje mod_rewrite

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

moj localhost: Nette 2.0.1, PHP 5.3.8, Apache 2.2.21 (XAMPP), Win7–64bit

RC hlasi: .htaccess mod_rewrite Disabled

napriek tomu, ze mam mod_rewrite zapnute (…a funguje).
Spustane zo sandboxu, namiesto [index.php] dam checker.php

function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())

dava TRUE

David Grudl
Nette Core | 8129
+
0
-

Detekuje to pokusem načíst soubor assets/rewrite/checker (relativně vůči adresáři se souborem checker.php). Jde ten soubor načíst?

MiroH
Člen | 5
+
0
-

David Grudl napsal(a):

Detekuje to pokusem načíst soubor assets/rewrite/checker (relativně vůči adresáři se souborem checker.php). Jde ten soubor načíst?

Mam tam subor checker.js (s priponou js). Takze dve moznosti:

prva: Premenovanie checker.js na checker ⇒ nefunguje

druha: Ked zmenim v checker.php

'<script src="assets/rewrite/checker"></script>

na

'<script src="assets/rewrite/checker.js"></script>

tak to fachci OK.

Nieco mi tu unika :-((

kravčo
Člen | 721
+
0
-

MiroH napsal(a):

RC hlasi: .htaccess mod_rewrite Disabled

V tomto je podstatné celé spojenie .htaccess mod_rewrite. Hovorí to o tom, že môžeš pomocou .htaccess nastavovať pravidlá pre mod_rewrite a ten test presne to robí: v súbore assets/rewrite/.htaccess definuje pravidlo pre mod_rewrite. Ak mod_rewrite toto pravidlo použije, načíta checker.js správne a len vtedy sa test vyhodnotí ako úspešný.

Samotné zapnutie mod_rewrite totiž nestačí, treba mať povolené aj konfigurovanie pomocou .htaccess. Ty máš zrejme toto konfigurovanie vypnuté.

Viac v dokumentácii k Apache.

David Grudl
Nette Core | 8129
+
0
-

…Nebo může být problém v nastavení RewriteBase.

Napadá vás, jak otestovat povolené .htaccess?

kravčo
Člen | 721
+
0
-

Predsa test .htaccess file protection zisťuje, či je možné súbory chrániť pomocou .htaccess. Nestačí to?

MiroH
Člen | 5
+
0
-

kravčo napsal(a):

Samotné zapnutie mod_rewrite totiž nestačí, treba mať povolené aj konfigurovanie pomocou .htaccess. Ty máš zrejme toto konfigurovanie vypnuté.

Cele som to robil v Sandboxe (v .htaccess som nic nemenil) a v *.conf mam:
Options All
AllowOverride All
Order allow,deny
Allow from All

Ale tiez mam citak, ze pes bude zakopany bud v Rewrite Base (ten je v Sandboxe odkomentovany) alebo
v tej *.js pripone pre „ne-rewriteovane“ subory.

Editoval MiroH (1. 3. 2012 23:37)

Bumerank
Člen | 30
+
0
-

mod_rewrite v souboru httpd.conf mám povolen, alias pro složky vypadá následovně:

<Directory "D:/TOM/web">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
#Allow from 127.0.0.1
Allow from all
</Directory>

obsah .htaccess:

# disable directory listing
Options -Indexes

# mod_rewrite
<IfModule mod_rewrite.c>
	RewriteEngine On
	# RewriteBase /

	# front controller
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
</IfModule>

a přesto mi RequirementsChecker hlásí, že je mod_rewrite zakázán a stejně tak mi nejdou ani odkazy v ukázkových příkladech – už jsem z toho fakt zoufalý…

Bumerank
Člen | 30
+
0
-

ještě doplním, že používám EasyPHP na Win7