php - .htaccess - 不路由到公用文件夹

标签 php .htaccess laravel

我的 laravel 安装似乎有问题,我试图在您键入 domainname.com/laravel 而不是显示目录时将 url 路由到公用文件夹。

但是当我放

<IfModule mod_rewrite.c>
   RewriteEngine On

   RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

进入 laravel 目录中的 .htaccess;它只是想出了这个。

请告诉我如何解决这个问题..因为我真的不知道。

最佳答案

听起来您正在尝试做的是将 Laravel 托管在您网站的子目录中。大多数时候,Laravel 应用程序托管在网站的根目录中,即 yourdomain.com。但是,您希望您的 Laravel 应用程序显示在 yourdomain.com/laravel 中。正确的?首先,警告:

This is NOT the recommended way to host a Laravel app

但是,如果您真的想将内容移动到子目录中,可以从这里开始。

public/ 中创建子目录并将核心 Laravel 文件移动到那里

默认情况下,干净的 Laravel 安装在 public/ 文件夹中有以下文件:

public/
  - .htaccess
  - favicon.ico
  - index.php
  - robots.txt
  - web.config

创建一个子目录并将这些文件移动到其中,例如如果您的子目录名为 laravel/ 那么您的新结构将如下所示:

public/
  - laravel/
    - .htaccess
    - favicon.ico
    - index.php
    - robots.txt
    - web.config

请务必不要更改 Laravel 附带的 .htaccess 文件的内容。否则您的网站肯定无法运行。

更新 index.php 以便它仍然可以找到 Laravel 核心

public/laravel/index.php 中,你需要更新所有看起来像这样的行:

require __DIR__.'/../bootstrap/autoload.php';

看起来像:

require __DIR__.'/../../bootstrap/autoload.php';

应该有两行需要更改。

此时,如果有人访问 yourdomain.com/laravel,他们会看到 Laravel 欢迎屏幕。您还可以按照通常在 app/Http/routes.php 中的方式创建路由。例如,如果您的路由文件如下所示:

Route::get('/', function () {
    return view('welcome');
});

Route::get('/hiya', function() {
    return 'hiya!';
});

然后访问 yourdomain.com/laravel/hiya 的人会在屏幕上看到“hiya”这个词。

这可能会给你带来很多问题

如前所述,Laravel 通常不打算从子目录运行,因此以我描述的方式使用它可能会导致很多问题和意外行为。

但是,您仍然可以在 public/ 文件夹中托管静态文件,并像对待任何网站一样为它们提供服务。

关于php - .htaccess - 不路由到公用文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34258117/

相关文章:

PHP - 读取结果 txt 文件以获取变量

php - laravel Eloquent 查询构建器在没有任何逻辑的情况下更新自定义时间戳字段

php - Laravel:原始查询设置

apache - 删除 https ://from URL while still serving SSL

laravel - VueJS 与 Laravel 的实际使用

php - 按列值的前导字符对数据行进行分组

php - 使用 Medoo 清理用户输入

php - 将 Codeigniter 购物车数据插入数据库

wordpress - X 机器人标签 noindex 特定页面

php - 仅一个文件的 RewriteRule