Laravel 5.5 如何将项目根目录设为一个二级目录?

想把项目根目录设为一个二级目录:http://sample.test/test/
尝试修改 .env 文件中的 APP_URL=http://sample.test/test,但是发现无效,项目依然只能通过 http://sample.test/ 访问。
想请问一下大家如何设置项目根目录的 URL 到一个指定的目录下?

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 10

不是太理解为啥会有这样的需求?你可以考虑使用 web 服务器的虚拟目录来搞定

6年前 评论

@overtrue 服务器环境不允许,不能配置二级域名,因此只能在服务器 Web 根目录下面的二级目录里部署应用。

6年前 评论

@6091 那很为难了

6年前 评论
Summer
location / {
        index index.php index.html;
    try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {

    if ($request_uri ~ ^/laravel-tutorial(?:/(.*))?$) {
            root /data/www/laravel-tutorial/public;
        }

        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_index index.php;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        #fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
6年前 评论

@Summer 谢谢,不过现在还是出现了问题。
现在测试的情况是:

  • Laravel 项目 laravel-tutorial 放在 Web 根目录下,即 .../www/laravel-tutorial/
  • 已按照上面在 /etc/nginx/sites-available 下面的配置文件中配置了 Nginx。

尝试访问 http://mydomain.com/laravel-tutorial,返回 403。

尝试访问 http://mydomain.com/laravel-tutorial/public,输出 No input file specified.

6年前 评论

看看文件目录权限,是不是没有访问权限,感觉summer的配置应该没有问题。

6年前 评论

Nginx使用proxy_pass转发到真正处理的服务127.0.0.1:8280

    location /admin/ {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Host $proxy_host;
        proxy_set_header X-Forwarded-Port $proxy_port;
        proxy_pass http://127.0.0.1:8280/;
    }

laravel配置.envAPP_URL

APP_URL=http://domain.local/admin

laravel使用forceRootUrl()配置URL,用于修正app('url')生成的链接

class AppServiceProvider extends ServiceProvider
{
    public function boot()
    {
        app('url')->forceRootUrl(config('app.url'));
    }
}

@6091

5年前 评论

@悠悠山雨 请问有具体配置吗

5年前 评论

@Richod 上面已经说明的很清楚了

5年前 评论

楼主,问题解决了吗?方便说一下实现的方法吗?

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!