web-dev-qa-db-ja.com

無効にするLaravel特定のフォルダー/ルートのルーティング

特定のディレクトリのlaravelのルーティングを無効にする方法を知りたいですか?

メインのウェブサイトをlaravelから実行したいと思っています(フレームワークに書き直しています)が、現在のフォーラムソフトウェアを保持したいと思います!問題は、laravelが「localhost/forums」を見ると、フォーラムのコントローラーまたはルートを探すことです。単に文字通りの/ forumsディレクトリに移動したいのですが。

17
Mitchell M

この行をpublic/.htaccessに追加する必要がありました

RewriteCond %{REQUEST_URI} !^/foldername

この行の前(末尾のスラッシュをリダイレクトする)

RewriteRule ^(.*)/$ /$1 [L,R=301]
13
George D.

Laravel 4では、これらのソリューションはどれも私には機能しませんでした。最終的には、

RewriteRule ^(directory-name) - [L]

RewriteRule ^(.*)/$ /$1 [L,R=301]

public /.htaccessで

6
KyleT

.htaccessファイルを除外する必要があります。すべてをindex.phpに送信するルールのすぐ上に、次を追加します。

RewriteCond %{REQUEST_URI} !^/forums

/forumsで始まるものはすべてLaravelに送信されません。

(もちろん、これはApacheを使用していることを前提としています。)

3
Mike Rockétt

routes.phpファイルによると、動作するはずです。

  1. forumURLをまったくキャッチしていません
  2. 'forum'ディレクトリ/ファイルが存在する場合、URLはLaravelのindex.phpに書き換えられません。

routes.php(テストケースでこれを使用しました)

Route::get('{slug}', function($slug){
    return $slug;
});

ファイル構造

|- app
|- public
|--- index.php // Laravel's one
|--- forum // directory for forum files
|------ index.php // Forum's one
....

この構造を使用すると、URLはLaravelのルーティングindex.phpファイルに書き換えられません。 forumフォルダの名前を変更/削除すると、URLが書き換えられます。

それはあなたのために働きますか?

1
Andreyco

Laravel 5.7で/ billing urlを除外する必要があったので、この方法でうまくいきました:

Route::redirect('/billing', '/billing');

請求先: 請求フォルダの場所

1
Ramin

私はnginxを使用しています、それは私のために働いています:

location /your_folder {     
    try_files $uri $uri/ /your_folder/index.php?$args;
}
0
Lão Còi