• Willkommen im Zend Framework Forum

    ZF1 Zend Framework 1 + ZF2 Zend Framework 2

    Das Zend Framework Forum ist seit 2006 die erste Anlaufstelle für Zend Framework Entwickler in Deutschland. Mit über 70.000 Beiträgen und einer steigenden Nutzerzahl bietet das Forum hilfreiche Themen und ZF-Tutorials für professionelle Entwickler, fortgeschrittene Programmierer sowie Zend Framework Einsteiger.
    Wenn dies Dein erster Besuch in der Zend Framework Community ist, lies bitte zuerst die Hilfe - FAQ durch. Du musst Dich registrieren, bevor Du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um die Registrierung zu starten. Du kannst auch jetzt schon Beiträge lesen. Hier im Forum findest Du die Zend Framework Hilfe, die Du suchst!

    Grüße an alle Zend Framework Entwickler. Das Team vom Zend Framework Forum!

    Drupal Agentur

Routing geht nicht mehr

-iis-

New member
Hallo,

ich hatte bisher meine ZF-Anwendung über einen Virtualhost-Namen erreichbar.
Nun bin ich gewechselt und verwende unter Apache 2.4 einen Aliasnamen.
Soweit so gut.

Die Startseite
http://localhost/myapp/
kommt auch korrekt (incl. scripten, images, etc).

Wenn ich aber
http://localhost/myapp/index/index
oder sonst irgendeine controller/action-Kombination aufrufe, bekomme ich 403 Errors:
"Objekt nicht gefunden! Der angeforderte URL konnte auf dem Server nicht gefunden werden."
Was kann da los sein? Wo in der Konfiguration kann ich suchen / rumschrauben?

Der Error-Controller ist natürlich ebenso betroffen.

Das Error-Log ist leer.
 
Zuletzt bearbeitet:

Kaiuwe

Super-Moderator
Was kann da los sein? Wo in der Konfiguration kann ich suchen / rumschrauben?
Umschreiberegeln für den Apache aktiv und auch entsprechend hinterlegt?
Der Error-Controller ist natürlich ebenso betroffen.
Das heißt jetzt was genau? Greift der Error-Kontroller oder nicht?
Das Error-Log ist leer.
Wenn du einen 404-Fehler vom Server erhältst, dann sollte auch ein Log-Eintrag vorhanden sein. Ansonsten ist das Logging deaktiviert.
 

-iis-

New member
Also, der nicht der ErrorController meldet Fehler, sondern Apache.
Im AccessLog des Apache steht sowas:
Code:
127.0.0.1 - - [14/Feb/2013:11:40:43 +0100] "GET /webcenter/ HTTP/1.1" 200 20200 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0"
127.0.0.1 - - [14/Feb/2013:11:40:52 +0100] "GET /webcenter/index/index HTTP/1.1" 404 1176 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:18.0) Gecko/20100101 Firefox/18.0"
Meine .htaccess sieht so aus:
Code:
RewriteEngine On

#RewriteCond %{SERVER_PORT}   !^443$
#RewriteRule  (.*)  https://%{HTTP_HOST}/$1   [L] 

SetEnv APPLICATION_ENV development

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
Und eingebunden in der httpd.conf wird über
Code:
Include "conf/extra/httpd-webcenter.conf"
diese Anweisung:
Code:
<IfModule alias_module>

Alias /webcenter "C:\Development\Projects\WEBCENTER\source\webcenter\public"
<Directory "C:\Development\Projects\WEBCENTER\source\webcenter\public">
Options +Indexes
<IfModule autoindex_color_module>
    DirectoryIndexTextColor  "#000000"
    DirectoryIndexBGColor "#f8e8a0"
    DirectoryIndexLinkColor "#bb3902"
    DirectoryIndexVLinkColor "#bb3902"
    DirectoryIndexALinkColor "#bb3902"
</IfModule>    

#Order allow,deny
#Allow from all
Require all granted
</Directory>
 

Kaiuwe

Super-Moderator
Also auch nicht hilfreich. Zumal ich bislang ja auch ohne diesen Parameter ein funktionierendes System hatte... Kennt Ihr den Parameter?
Ja, ist bekannt. Wird aber eigentlich nicht gebraucht, da diese Angabe automatisch ermittelt wird.

Ich denke, es liegt gar nicht am Framework, denn bis dahin kommst du nicht mal. Du bekommst eine 404-Fehlermeldung vom Webserver, damit hat das ZF erstmal nichts mit zu tun. Will heißen, deine Anfragen werden nicht auf die „index.php“ umgeleitet. Hier solltest du also ansetzen.
 

Kaiuwe

Super-Moderator
Klingt erstmal logisch, aber warum kommt dann bei
http://localhost/webcenter/
eine response 200 und nicht auch 404?
Weil der Webserver so konfiguriert ist, dass er automatisch die „index.php“ aufruft. Da braucht es keine Umschreiberegeln. Für alle anderen Anfragen, z.B. „http://localhost/webcenter/foo/bar/“, brauchst du aber eine Umschreiberegel, damit der Webserver diese Anfrage auf die „index.php“ umleitet und das ZF diese Anfrage verarbeiten/auswerten kann.
 

-iis-

New member
So, ich bin ein KLEINES Stück weitergekommen. Das Problem war wohl der XAMPP Server. Der hat irgendwie die Rewrite-Anweisungen in der htaccess ignoriert. Habe jetzt auf WAMP gewechselt und die Anwendung kommt...
AAABER:

Wenn ich
aufrufe, kommt die Startseite, wenn ich
aufrufe, ebenfalls.
Sobald ich aber irgendeinen anderen Controller/Action aufrufe, wie z.B.
http://localhost/webcenter/authorization/login
bekomme ich 404 mit der Meldung
Not Found
The requested URL /Development/Projects/WEBCENTER/source/webcenter/public/index.php was not found on this server.
Ich habe in der bootstrap.php folgendes eingefügt:
Code:
    protected function _initRoutes()
    {
        $this->bootstrap('frontController');
        $frontController = Zend_Controller_Front::getInstance();    
        $nowRoute = new Zend_Controller_Router_Route("webcenter/:controller/:action");    
        $frontController->getRouter()->addRoute("webcenter", $nowRoute);
    }
Ist das richtig? Oder überflüssig? Ich kann keine Änderung zu vorher erkennen. Zu Zeiten, wo ich vhost nutzte, hatte ich das nicht drin. Oder hängt das garnicht damit zusammen?

ZF kann mit /Alias aber umgehen, oder? Oder nutze ich besser Subdomains?
 
Oben