2016-04-07 6 views
1

Mit Laravel möchte ich eine Route erstellen, um die Funktionalität einer Legacy-URL zu ersetzen, die früher eine PHP-Datei war, aber immer wenn ich eine Route mit .php erstelle die Strecke erkennen und ich bekomme ein 404.Laravel Routen mit Endung '.php' funktioniert nicht

Route::get('test.php', function(){return "test";}); // Gets a 404 error.

jedoch andere Routen mit Erweiterungen zu funktionieren scheinen.

Route::get('test.txt', function(){return "test";}); // works fine

Antwort

2

sehen mod_rewrite als ein Teil von Apache mod_rewrite dieser Handhabung nicht der Laravel allein Rahmen. siehe in die öffentliche/.htaccess Datei.

Ich sehe keinen Grund, dies zu tun. Aber wie du wissen willst, erzähle ich. Ich empfehle das nicht, da es einige Zwecke des Rahmens vermeidet.

Zunächst müssen Sie Ihre .htaccess-Datei-Rewrite-Regeln bearbeiten, um die PHP-Erweiterung zu aktivieren. Ich kann nicht viel sagen, da ich diese Dateien hier nicht sehe.

Zweitens werden alle Anfragen standardmäßig zu index.php umgeleitet werden. Siehe eine meiner Laravel Projekt public/Ordner .htaccess Datei. Sie müssen in Ihre schauen und diese ändern, es gibt viele Möglichkeiten, die Sie entsprechend Ihren Bedürfnissen ändern können. .htaccess-Dateien

für Erweiterung dort andere sein könnte Teil wechselnden hier

RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule^index.php [L]Teil für index.php Wechsel

meine .htaccess-Datei, da es nicht ist modifiziert

<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] 

# Handle Authorization Header 
RewriteCond %{HTTP:Authorization} . 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

0

In Laravel benötigen Ihre Routen keine .php Erweiterung.

überprüfen Sie die documentation.

Auch wenn Sie Ansichten zurückgeben, benötigen Sie nicht die Erweiterung .php.

+1

Ich weiß. Es existiert bereits eine URL, die ich durch eine Route in Laravel ersetzen möchte. Ich kann die URL aufgrund von Legacy-Unterstützung nicht ändern und endet mit '.php'. –