我的问题是:如何在目录中运行laravel应用程序 (不是在root中)共享虚拟主机?
对于我的一些客户,我在其选定的共享虚拟主机的根文件夹中运行Laravel应用程序,并从URL中删除 / public 部分。为了完成这项工作,我将index.php移动到根文件夹,并将index.php中的信息更改为:
require __DIR__.'/bootstrap/autoload.php';
$app = require_once __DIR__.'/bootstrap/app.php';
现在我知道这会导致安全问题,但我已经找到了共享网络主机的解决方案。
我用来进行此更改的.htaccess是:
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]
但在这种情况下,我希望laravel项目在名为test的目录中运行。
文件夹结构:
root (public_html)
|-- test (directory with laravel project)
现在我不确定我是否可以简单地更改.htaccess,因为我不熟悉.htaccess文件。为了使这项工作,我必须做出哪些改变?
请注意我的网址:
// 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