laravel 5 nur Stamm-route funktioniert

Ich bin neu in laravel. Ich bin mit Ubuntu 15.04. Habe ich installiert, Laravel Framework, version 5.1.7 (LTS) mit Komponist und ein lamp-server mit $ sudo apt-get install lamp-server^ Befehl (habe ich nicht installieren, Homestead). Ich bin mit PhpStorm 8.0.3 als IDE.

Erstellte ich drei Routen und einen controller. Die PagesController.php - Datei sieht wie folgt aus:

class PagesController extends Controller
{
    public function index()
    {
        return 'Welcome to my homepage!';
    }

    public function about()
    {
        return 'Learn a little about me.';
    }

    public function hello()
    {
        return 'Hello World!';
    }
}

und die routes.php sieht wie folgt aus:

Route::get('/', 'PagesController@index');

Route::get('about', 'PagesController@about');

Route::get('hello', 'PagesController@hello');

Immer, wenn ich gehen, um http://localhost:63342/my-first-app/public/ (oder http://localhost:63342/my-first-app/public/index.php) es funktioniert einwandfrei und zeigt mir die Welcome to my homepage! Nachricht. Aber wenn ich gehe, um http://localhost:63342/my-first-app/public/hello oder http://localhost:63342/my-first-app/public/about, was ich bekomme ist 404 Not Found Nachricht.

Auch, die .htaccess - Datei, die befindet sich bei my-first-app/public sieht wie folgt aus:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

Was ich versucht habe:

  • Ich versuchte http://localhost:63342/my-first-app/public/index.php/hello oder http://localhost:63342/my-first-app/public/index.php/about aber es funktioniert auch nicht.
  • Ich eingegeben Befehl sudo a2enmod rewrite gefolgt von sudo service apache2 restart aber es funktioniert auch nicht.
  • Ich versuchte composer dump-autoload aber es funktioniert auch nicht.
  • Änderte ich AllowOverride aus None zu All im apache2.conf. Jetzt Teil sieht es wie folgt aus:

    <Directory />
        Options FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
    <Directory /usr/share>
        AllowOverride All
        Require all granted
    </Directory>
    
    <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    
    <Directory /srv/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    aber es löst nicht das problem entweder.

Update (7/15/2015):

Das Ergebnis der Ausführung php artisan route:list sieht wie folgt aus:

+--------+----------+-------+------+--------------------------------------------+------------+
| Domain | Method   | URI   | Name | Action                                     | Middleware |
+--------+----------+-------+------+--------------------------------------------+------------+
|        | GET|HEAD | /     |      | App\Http\Controllers\PagesController@index |            |
|        | GET|HEAD | about |      | App\Http\Controllers\PagesController@about |            |
|        | GET|HEAD | hello |      | App\Http\Controllers\PagesController@hello |            |
+--------+----------+-------+------+--------------------------------------------+------------+
  • Führen Sie "php artisan route:Liste" und fügen Sie die Ausgabe. Sie sollten sehen, alle definierten Routen.
  • Vielen Dank für Ihre Antwort. Ich fügte hinzu, das Ergebnis am Ende meiner Frage.
  • Könntest du ein dd('test'); an der Spitze der index-Datei, gehen Sie zu "localhost:63342/meine-erste-app/public/index.php/info" und sehen, ob der test ausgegeben werden? auf diese Weise würden wir wissen, wenn es etwas umschreiben oder mit Laravel code
  • Ich fügte dd('test'); oben index.php - Datei. Nun, wenn ich gehen, um http://localhost:63342/my-first-app/public/index.php es zeigt mir eine leere Seite und wenn ich auf http://localhost:63342/my-first-app/public/index.php/about es gibt mir die gleichen 404 Not Found Nachricht.
  • Ich meinte sterben,nicht dd 🙂 wie auch immer, jetzt wissen wir, es ist etwas falsch mit der schreibt. Ich werde versuchen, den Grund zu finden, später, können Sie suchen Sie sich für einige Probleme mit dem umschreiben, wie es für Sie sicher nicht Laravel-routing.
  • Danke für Eure Hilfe. Ich werde weiter suchen.
  • Hey, wir ändern die RewriteEngine auf "off" in der .htaccess für einen moment. Funktioniert es dann?
  • Ich änderte RewriteEngine zu Off. Die situation ist die gleiche wie zuvor.
  • Dann scheint es, wie es ist, nicht mod_rewrite. Um sicher zu stellen, starten Sie den Apache neu. In den Routen, fügen Sie diese für einen weiteren test und öffnen Sie die Seite: Route::get('test', function(){ echo 'test works';});
  • Leider funktioniert es ebenfalls nicht.
  • $heute: funktioniert das? http://localhost:63342/my-first-app/public/test Wenn nicht, was siehst du? Und was machen die Apache-logs sagen?
  • Würden Sie bitte ausführen php artisan serve --port 8000 --host 127.0.0.1 in Ihrem consol (vielleicht terminal, da Sie in Linux) und navigieren Sie dann zu http://localhost:8000/about und sagen Sie uns, was passiert? Auch, denken Sie daran, Sie müssen möglicherweise starten Sie Ihren apache-server auf Ihrem lampp.
  • Nein, es funktioniert nicht. Es zeigt die 404 not found Nachricht. @CrackingTheCode ich Tat was Sie sagte und ging zu http://localhost:8000/about Es zeigt die richtige Learn a little about me! Nachricht. Was ist also das problem? Danke.
  • So, es hat etwas todo mit Ihrer Umgebung und nicht laravel. Was tun die Apache-logs sagen?
  • hast du es geschafft, dies zu lösen?

InformationsquelleAutor today | 2015-07-15
Schreibe einen Kommentar