gpt4 book ai didi

php - Apache 为 Laravel/public 重写

转载 作者:可可西里 更新时间:2023-11-01 00:14:57 27 4
gpt4 key购买 nike

我对此感到抱歉,但我的 htdocs root 是错误的,我无法更改它。所以我必须让它在 /public 文件夹中工作。

我使用普通的 Laravel .htaccess 文件进行以下重写:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

如果我打开 http://kemtime2_neu.pr.domain.de/public 我会被重定向到 http://kemtime2_neu.pr.domain.de/public/http://kemtime2_neu.pr.domain.de/public/login

我该如何解决这个问题?

我很想让它在 http://kemtime2_neu.pr.domain.de/ 上工作,但让它在 http://kemtime2_neu.pr.domain.de 上工作/public/ 就可以了。

最佳答案

我使用这篇文章的 3 解决方案并且工作正常:

http://web.archive.org/web/20130320184846/http://forums.laravel.io/viewtopic.php?id=1258

解决方案 1 - 使用符号链接(symbolic link)的备用安装路径。

这是首选解决方案,通常是一个全面的好主意。可以将您的应用程序安装到与 public_html/无关的文件夹,然后将公共(public)文件夹符号链接(symbolic link)到 public_html/路径。

例如:

将您的应用程序安装到/home/applications/mysite.com

假设您的 DocumentRoot 指向/var/www/vhosts/mysite.com/httpdocs

从 mysite.com vhosts 文件夹中删除 httpdocs 文件夹,然后使用符号链接(symbolic link)将两者连接起来:ln -s/home/applications/mysite.com/public/var/www/vhosts/mysite.com/httpdocs

解决方案 2 - .htaccess 与 mod_rewrite

此解决方案使您能够将 Laravel 放入您的公用文件夹,然后使用 .htaccess 文件将请求重定向到公用文件夹。该解决方案将您的应用程序和核心系统代码放置在一个可公开访问的文件夹中。我们不鼓励您使用任何 PHP 框架执行此操作。

第 1 步。将 Laravel 放在您的文档根文件夹中。

第 2 步。将以下 .htaccess 文件放在文档根文件夹中。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

第 3 步。确保您在 application/config/application.php 中手动设置了“url”配置,否则 Laravel 将生成不正确的 URL。确保您的每个环境都具有正确的 application.url 配置。有关特定于环境的配置的更多信息,请参阅:http://laravel.com/docs/install#environments

解决方案 3 - 将公用文件夹合并到安装根目录

此解决方案将您的应用程序和核心系统代码放置在一个可公开访问的文件夹中。我们不鼓励您使用任何 PHP 框架执行此操作。

将 public/文件夹的内容复制到 Laravel 安装文件夹中,然后将 index.php 文件中的这一行更改为:

require '../paths.php';

require 'paths.php';

请记住,任何 bundle 、库或其他类型的第三方代码不得设计为可公开访问。

注意:同样重要的是要注意您的 bundles/和 public/bundles/目录现在会发生冲突。使用这种方法时,您可能不想在不知道您的包想要发布什么的情况下不使用 artisan 的 bundle:publish 任务。

关于php - Apache 为 Laravel/public 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15498513/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com