Php 在共享主机上的目录文件夹中运行laravel项目

Php 在共享主机上的目录文件夹中运行laravel项目,php,laravel,.htaccess,laravel-5,webserver,Php,Laravel,.htaccess,Laravel 5,Webserver,我的问题是:如何在目录中运行laravel应用程序 (不是在根目录下)在共享的网络主机上 对于我的一些客户,我在他们选择的共享网络主机的根文件夹中运行Laravel应用程序,并从URL中删除/public部分。为此,我将index.php移动到根文件夹,并将index.php中的信息更改为: require __DIR__.'/bootstrap/autoload.php'; $app = require_once __DIR__.'/bootstrap/app.php'; 现在我知道这可能会

我的问题是:如何在目录中运行laravel应用程序 (不是在根目录下)在共享的网络主机上

对于我的一些客户,我在他们选择的共享网络主机的根文件夹中运行Laravel应用程序,并从URL中删除/public部分。为此,我将index.php移动到根文件夹,并将index.php中的信息更改为:

require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
现在我知道这可能会导致安全问题,但我已经找到了解决共享WebHoster问题的方法

我用于进行此更改的.htaccess是:

但在本例中,我希望laravel项目在名为test的目录中运行

文件夹结构:

现在我不确定是否可以简单地更改.htaccess,因为我对.htaccess文件不是很熟练。我需要做些什么改变,才能让这一切顺利进行

注意我的URL:


很简单,只需将项目1级别置于public_html文件夹之上,并将public文件夹本身重命名为public_html即可


另外,这可能是一种比使用.htaccess更好的方法,因为现在您确实知道,公共html之外的文件不在您的webroot中(黑客无法访问),而使用htaccess,您可能会犯错误并将文件暴露出来。

这很容易,只需将项目1级别置于public_html文件夹之上,并将public文件夹本身重命名为public_html即可


另外,这可能是一种比使用.htaccess更好的方法,因为现在您确实知道,公共html之外的文件不在您的webroot中(黑客无法访问),使用htaccess您可能会犯错误,文件会被暴露。

不适用于我:www.[文本占位符].com/test/public/css/style.css仍然更改为:www.[text placeholder].com/public/css/style.css您必须在本地重命名它们,然后首先运行
php artisan optimize
composer update
)。将其上载到共享主机。我在vimexx.nl主机上自己做。他们使用directadmin。对这个问题做了快速的解决。无法生成如下子域:test。[文本占位符].com。现在所有文件都像往常一样正确链接。对我不起作用:www.[text placeholder].com/test/public/css/style.css仍然被更改为:www.[text placeholder].com/public/css/style.css您必须在本地重命名它们,然后首先运行
php artisan optimize
composer update
)。将其上载到共享主机。我在vimexx.nl主机上自己做。他们使用directadmin。对这个问题做了快速的解决。无法生成如下子域:test。[文本占位符].com。现在所有文件都像往常一样正确链接。
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]

RewriteCond %{REQUEST_URI} !(\.eot|\.woff|\.css|\.js|\.png|\.jpg|\.gif|robots\.txt)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ public/$1/$2 [L,NC]
root (public_html)
  |-- test (directory with laravel project)
// this link will be changed to:
    www.[text-placeholder].com/test/public/css/style.css 

// Output above result now:
    www.[text-placeholder].com/public/css/style.css

// But should be:
    www.[text-placeholder].com/test/public/css/style.css