2010-12-14 5 views
0

Die prägnanteste Weg, das Problem bei der Hand der Zusammenfassung:Symfony 1.4 Routing-Probleme nur bei Verwendung von index.php und mod_rewrite

  • Entwicklung ist vorbei, und alles war gegen frontend_dev.php während der Entwicklung führen und Test

    Diese

    bedeutet, dass alle URLs waren: server.com/frontend_dev.php/module/action/parm

  • Produktionsbewegungsmittel Umgebungen Switching- und thusly Verwendung inde x.php statt
    server.com/index.php/module/action/parm

  • Teil zur Produktion von bewegter mod_rewrite unter Apache2 wird mit dem „index.php“ Teil der URL zu machen verschwinden, aber immer noch funktionierende
    server.com/module/action/parm noch gegen index.php weitergeleitet wird

  • die URLs in der Tat w/o der index.php Teil erscheinen, aber symfony-Routing wird nun klagen:
    dh server.com/goals, die zu Zielen/indexführt - völlig in Ordnung frontend_dev.php oder index.php als expliziten Controller
    server.com/index.php/goals
    mit - ohne Verwendung eines expliziten Controller (via Rewrite):
    [Di Dezember 14 00.59.51 2010] [Fehler] [client 75.16.181.113] Leere Modul und/oder eine Aktion nach der URL "/ Ziele /" (/) Parsen

ich das Umschreiben prüft haben, ist in der Tat Routing zu index.php durch Änderung der Umschreibung in etwas, das nicht existiert:
[Di 14 13.05.43 Dezember 2010] [Fehler] [client 75.16.181.113] script '/opt/www/projects/adam/web/index2.php' nicht gefunden oder nicht in der Lage

stat Ich habe versucht, zu Frontend_dev.php umzuleiten, aber nur mit mehr Debug-Informationen von Symfony zur Verfügung gestellt, von denen keiner hilfreich ist:

404 | Nicht gefunden | sfError404Exception Leere Modul und/oder Aktion nach dem Parsen der URL "/ Ziele /" (/).
Stapelüberwachung
1 at() in SF_SYMFONY_LIB_DIR/controller/sfFrontWebController.class.php Leitung 44 ...
2. bei sfFrontWebController-> Dispatch() in SF_SYMFONY_LIB_DIR/util/sfContext.class.php Leitung 170. ..
3. bei sfContext-> dispatch() in SF_ROOT_DIR/web/frontend_dev.php Linie 13 ...

ich die mit der RewriteBase Option in .htaccess versucht, aber das hilft nicht jeder , noch Ändern der wahr/falsch in der Konfigurationszeile der Controller

Ich hoffe, dass dies zur Verfügung stellen s genug, um zu verstehen, warum wir verwirrt sind und uns zu einer Lösung führen können.

Folgendes ist die aktuelle.htaccess und Index/Frontend Konfigurationszeilen

Index.php:

$ Konfiguration = Project :: getApplicationConfiguration ('Frontend', 'prod', false);

frontend_dev.php:

$ Konfiguration = Project :: getApplicationConfiguration ('Frontend', 'dev', true);

.htaccess:

RewriteEngine On

# Kommentar- der folgenden Zeile, wenn Sie Probleme # haben no_script_name bekommen #RewriteBase/

# wir alle überspringen zu arbeiten Dateien mit .something #RewriteCond% {REQUEST_URI} .. + $ #RewriteCond% {REQUEST_URI}! .html $ #RewriteRule. * - ([. ^] +) [L]

# wir überprüfen, ob die HTML-Version hier ist (Caching) RewriteRule^$ index.html [QSA] RewriteRule^$ $ 1.html [QSA] RewriteCond% {REQUEST_FILENAME}! -f

# nein, so leiten wir an unsere Front Web-Controller RewriteRule^(. *) $ index.php [QSA, L]

+0

Es scheint seltsam, dass Symfony beschwert, dass die Route nicht gefunden wird, wenn die Anfrage korrekt umgeschrieben wird. - Haben Sie versucht, die Routenkonfiguration über index.php direkt in Ihren Browser zu dumpen? Und den Cache manuell löschen, vielleicht? Versuchen Sie auch, in Ihre index2.php-Datei zu schreiben und die Abfrage auszudrucken. – cvaldemar

+1

Könnten Sie Ihre routing.yml posten? – Vojta

Antwort

0

Willkommen Stapelüberlauf.

Vielleicht verwirren Sie die "Index" Route mit "index.php"?

Diese URLs sollten theoretisch alle funktionieren.

server.com/frontend_dev.php/goals/index 
server.com/index.php/goals/index 
server.com/goals/index 
server.com/goals 

Ich kann mich nicht erinnern, wenn der Schrägstrich, wie server.com/goals/, funktioniert oder nicht. Da ist eine Frage.

+0

Der Schrägstrich sollte nicht da sein ... – Vojta

1

Ich hatte ähnliches Problem und Einstellung "AllowOverride" auf alle für Symfony WEB-Ordner in Virtual Host-Konfiguration dieses Problem aussortiert.

Verwandte Themen