19

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

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

4

6 回答 6

15

我必须在 public/.htaccess 中添加这一行

RewriteCond %{REQUEST_URI} !^/foldername

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

RewriteRule ^(.*)/$ /$1 [L,R=301]
于 2014-02-02T19:10:28.220 回答
6

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

RewriteRule ^(directory-name) - [L]

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

在公共/.htaccess

于 2014-06-25T16:16:30.250 回答
4

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

RewriteCond %{REQUEST_URI} !^/forums

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

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

于 2013-08-07T05:24:41.427 回答
2

根据您的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 会被重写。

对你起作用吗?

于 2013-08-07T07:42:58.917 回答
2

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

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

计费时位于: 我的计费文件夹位置

于 2019-01-01T22:56:39.133 回答
0

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

location /your_folder {     
    try_files $uri $uri/ /your_folder/index.php?$args;
}
于 2018-10-10T09:49:55.490 回答