我遵循以下结构,因为我不想向公众公开我的代码。
我的localhost中的文件夹结构是
tbt
tbt/user/
tbt/public_html/
其中user包含root的所有文件夹,没有公用文件夹,public_html包含公共文件。
我在public_html / index.php中更改了以下几行:
require __DIR__.'/../user/bootstrap/autoload.php';
$app = require_once __DIR__.'/../user/bootstrap/app.php';
但是当我运行应用程序时,
我得到的网址类似于localhost/tbt/user/xxxx
,但它应该是localhost/tbt/xxx
我已按照此solution解决问题,但无法解决问题,因为我的应用程序在Laravel 5上。有人可以帮我找到解决方案吗?
答案 0 :(得分:1)
流程1
流程2
按照流程1
更新.htaccess,如下所示
.htaccess如下所示
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
RewriteCond %{REQUEST_URI} !(\.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 ^(css|js|images)/(.*)$ public/$1/$2 [L,NC]
答案 1 :(得分:1)
您可以在Web服务器中设置别名,指向公用文件夹。这很简单但对我有用
答案 2 :(得分:0)
在你的 Laravel 项目的根目录中创建一个名为 .htacess
的文件并将这段代码粘贴到其中
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ ^$1 [N]
RewriteCond %{REQUEST_URI} (\.\w+$) [NC]
RewriteRule ^(.*)$ public/$1
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ server.php