PDA

Vollständige Version anzeigen : Requests werden nicht auf index.php geleitet


Farodin
07.12.2008, 19:01
Hallo Zend Community,

ich hab heute mal einen Blick auf das Framework geworfen und wollte es auch gleich ausprobieren. Bei der "Installation" hab ich allerdings ein Problem...

Ich hab meinen vhost auf den Public Ordner gesetzt und dort dann eine htaccess geschrieben:

# Rewrite rules for Zend Framework
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php

# Security: Don't allow browsing of directories
Options -Indexes

# PHP settings
php_flag magic_quotes_gpc off
php_flag register_globals off
php_flag short_open_tag on

Wenn ich nun aber sowas wie "/dklfmkkslf" eingebe kommt not found. Auch wenn ich zb /js eingebe sehe ich den Ordnerinhalt...

Eigentlich sollte ich doch immer auf index.php umgeleitet werden oder?

Der Frontcontroller muss die URL ja als get Parameter entgegenehmen können oder?


Ich hoffe ihr könnt mir mit erklärenden Antworten helfen.

mfg
Farodin

PS: Mod Rewrite ist eigentlich da und ich habs auch noch mit AllowOverride All versucht...

KingCrunch
07.12.2008, 19:10
Und auch immer Server neu gestartet?

Farodin
07.12.2008, 19:22
Ja :(

ice-breaker
07.12.2008, 22:03
Was sagt das Apache error.log ?

Farodin
07.12.2008, 22:28
Nur das was ich im Browser auch sehe. Seite (Datei...) konnte nicht gefunden werden...

Mr.AndersoN
07.12.2008, 23:22
Hängt vor dem eigentlichen DocumentRoot noch eine Ordnerstruktur?

tebe
08.12.2008, 07:32
Machen ev. die php_flag-Anweisungen Probleme?

Farodin
08.12.2008, 08:31
Nachdem ich die PHP Flags auskommentiert habe hat sich nichts geändert...

Mein vhost sieht so aus:

<VirtualHost ip:port>
ServerName domain
ServerAlias *.domain
DocumentRoot /var/www/domain/htdocs/public
ErrorLog /var/www/domain/error_log
CustomLog /var/www/domain/access_log common
</VirtualHost>

<Directory /var/wwww/domain/htdocs/public>
AllowOverride All
</Directory>

Kann es vielleicht an den Rechten liegen?
Das Verzeichnis domain ist das Homeverzeichnis vom user Domain. Ich hab die Gruppe rekursiv auf www-data und die rechte auf 775 gesetzt. (Warum?^^: Ich wollte dem FTP User das www Unterverzechnis als Rootverzeichnis geben, was auch klappt...)

DennisBecker
08.12.2008, 08:42
Wenn du schon den vhost selber definieren kannst, würde ich auch die RewriteRule da mit reinnehmen, das ist performanter als eine .htaccess Datei zu verwenden.

RewriteRule .* index.php
Hört sich blöd an, aber manchmal muss man es wie folgt schreiben:
RewriteRule .* /index.php

akkie
08.12.2008, 10:03
Hi

Mal so Probieren.



<VirtualHost ip:port>
ServerName domain
ServerAlias *.domain
DocumentRoot /var/www/domain/htdocs/public
<Directory /var/www/domain/htdocs/public>

# Rewrite rules for Zend Framework
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php

# Security: Don't allow browsing of directories
Options -Indexes

# PHP settings
php_flag magic_quotes_gpc off
php_flag register_globals off
php_flag short_open_tag on

AllowOverride All
Order allow,deny
Allow from all
</Directory>
ErrorLog /var/www/domain/error_log
CustomLog /var/www/domain/access_log common
</VirtualHost>


Mfg Akkie

KingCrunch
08.12.2008, 10:11
Wenn man schon PHP-Direktiven statisch in einer Konfiguration setzt, dann sollte es die php.ini sein. Es ist nicht gesagt, dass PHP die Direktiven, die woanders (*.conf, .htaccess,..) gesetzt werden, auch übernimmt.
Wieso steht in der VirtualHost-Direktive eigentlich ip:port? Sollte da nicht eine IP und ein Port stehen? ;) In diesem Kontext würd ich einfach ma behaupten, dass der VHost garnicht erst angesprochen wird.

Farodin
08.12.2008, 10:31
Komisch... jetzt gehts :)
Ein / musste ich allerdings nicht vor index.php schreiben, klappt schon ohne.

Danke für die Hilfe.

PS: @KingCrunch: Ich hab domain, ip und port als platzhalter benutzt ;)