禁用特定文件夹/路由的Laravel Routing

时间:2013-08-06 08:33:59

标签: php laravel web-development-server

我想知道如何在特定目录的laravel上禁用路由?

我希望将我的主要网站从laravel(我将其重写到框架中)运行,但我想保留我当前的论坛软件!问题是,当laravel看到“localhost / forums”时,它会查找论坛控制器或路由。我想它只是去文字/论坛目录..?

6 个答案:

答案 0 :(得分:13)

我必须在public / .htaccess

中添加此行
RewriteCond %{REQUEST_URI} !^/foldername

在此行之前(重定向尾部斜杠)

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

答案 1 :(得分:6)

使用Laravel 4这些解决方案都不适用于我。我最终通过放置

解决了这个问题
RewriteRule ^(directory-name) - [L]

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

在public / .htaccess

答案 2 :(得分:3)

您需要在.htaccess文件中排除。在将所有内容发送到index.php的规则上方,添加以下内容:

RewriteCond %{REQUEST_URI} !^/forums

任何以/forums开头的内容都不会发送给Laravel。

(当然,假设您使用的是Apache。)

答案 3 :(得分:1)

根据您的routes.php文件,它应该有效。

  1. 您根本没有抓住forum网址
  2. 如果'forum'目录/文件存在,则不会将URL重写为Laravel的index.php
  3. 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。

    它对你有用吗?

答案 4 :(得分:0)

我正在使用nginx,对我有用:

location /your_folder {     
    try_files $uri $uri/ /your_folder/index.php?$args;
}

答案 5 :(得分:0)

我需要在Laravel 5.7上排除/ billing网址 所以这种方式对我有用:

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

帐单位于: My billing folder location