2016-04-07 13 views
1

Laravelを使用して、PHPファイルであったレガシーURLの機能を置き換えるルートを作成したいと思いますが、.phpで終わるルートを作成するときは、ルートを認識し、拡張子を持つ他のルートが動作するように見えるしかし、私は404'.php'で終わるLaravelルートが動作しない

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

を取得します。

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

答えて

2

はこれを扱うのApacheのmod_rewriteのその一部、だけではないlaravelフレームワークとしてmod_rewriteを参照してください。 public/.htaccessファイルを参照してください。

私はこれを行う理由はありません。しかし、あなたが知りたがっているように、私は伝えています。フレームワークのいくつかの目的を避けるためにこれをお勧めしません。

まず、.htaccessファイルの書き換えルールを編集してPHP拡張機能を有効にする必要があります。私はここにそれらのファイルが表示されないので、私は多くを言うことができません。

2つ目は、すべてのリクエストがデフォルトでindex.phpにリダイレクトされることです。私のlaravelプロジェクトpublic/folder .htaccessファイルのいずれかを参照してください。 あなたはあなたのことを調べてそれを修正する必要があります。必要に応じて修正する方法はたくさんあります。一部を変更する拡張機能のための他の.htaccessファイル

があるかもしれない、それはないとして、index.phpの

私の.htaccessファイルを変更するための一環ここ

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

RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule^index.php [L]を見ます修飾された

<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

あなたのルートには.php拡張子は必要ありません。

チェックアウト:documentation

また、ビューを返すときに.php拡張子は必要ありません。

+1

私は知っています。すでに存在しているURLがあり、これはlaravelのルートに置き換えたいものです。レガシーサポートのためにURLを変更することはできず、 '.php 'で終わります。 –

関連する問題