it-swarm.com.de

symfony2 Regeln umschreiben .htaccess app.php

Ich habe mein symfony2-Projekt auf Server Grove hochgeladen. Die Hauptseite wird geladen, aber alle Links sind defekt. Ich habe versucht, app.php zur Webadresse hinzuzufügen. Es hat funktioniert, aber:

Ich habe Routen wie diese: 

www.something.com/app.php/something

Ich möchte, dass sie sind:

www.something.com/something.

Ich habe gelesen, und ich sollte einige Regeln für den .htaccess umsetzen. 

Ich habe diese Regeln gefunden, aber sie scheinen nicht zu funktionieren:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
43
Francisco Ochoa

Versuchen Sie dies in Ihrer .htaccess-Datei (im Webverzeichnis): 

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
    RewriteRule ^app_dev.php - [L]
    RewriteRule ^app.php - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    # Change below before deploying to production
    #RewriteRule ^(.*)$ /app.php [QSA,L]
    RewriteRule ^(.*)$ /app_dev.php [QSA,L]
</IfModule>
58
greg

Um die Antwort von Whistlergreg zu verbessern, habe ich eine Zeile hinzugefügt, damit der Bundles-Ordner nicht beschädigt wird. Dadurch wird sichergestellt, dass externe Ressourcen wie Bilder nicht beschädigt werden.

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
    RewriteRule ^/web/app_dev.php - [L]
    RewriteRule ^/web/app.php - [L]

    # Fix the bundles folder
    RewriteRule ^bundles/(.*)$ /web/bundles/$1  [QSA,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    # Change below before deploying to production
    #RewriteRule ^(.*)$ /web/app.php [QSA,L]
    RewriteRule ^(.*)$ /web/app_dev.php [QSA,L]
</IfModule>
24
JimTheDev

Sie haben das Überschreibungsmodul nicht aktiviert. Dieser Code wird ausgeführt, wenn mod_rewrite.c aktiviert ist. Sie dürfen mod_rewrite nur in Apache2 aktivieren http://www.unixmen.com/how-to-enable-and-disable-Apache-modules/

Zum Beispiel in Ubuntu:

Sudo a2enmod rewrite
Sudo service Apache2 restart
4
Akairis

Denken Sie auch daran, die Apache-Konfiguration zu kommentieren (falls kommentiert):

LoadModule rewrite_module libexec/Apache2/mod_rewrite.so

Mac OS X

/private/etc/Apache2/httpd.conf

0
sensorario

Sie können versuchen, den vollständigen Pfad zu Ihren Assets anzugeben (vollständige URL). Ich hatte das gleiche Problem, als ich meine erste Symfony-Anwendung bereitstellte

Mein Root-Verzeichnis (in den meisten Fällen der Ordner public_html) .htaccess sieht folgendermaßen aus 

Options +FollowSymLinks +ExecCGI

RewriteEngine On

RewriteCond %{HTTP_Host} ^(www\.)?mydomain\.com$ [NC]
RewriteRule !^projectName/ /projectName/web/app.php/%{REQUEST_URI} [L,NC]
0
kiran Mohan