我试图搜索并使用已经发布的解决方案,但现在没有任何效果,我尝试了很多我能做的但是没有工作。
这些是应用程序目录:
localhost/
root/
data/
app/
public/
index.php
.htaccess
htaccess是这样的:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /root/public/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
</IfModule>
第一个问题是,如果我去localhost / root / public网站按预期工作,但在网址中我仍然看到&#39; public&#39;我想删除。
第二个问题是我的目标是从url localhost / root /转到索引,但是现在,如果我去那里它只显示文件夹中的文件。
谢谢。
根据要求,这些是我使用的路线:
$app->get('/', function () use ($app) {
// code
})->bind('home');
$app->get('/about-me', function () use ($app) {
// code
})->bind('about-me');
答案 0 :(得分:1)
您的系统中存在两个错误。
第一: 位于根文件夹中的.htaccess应该用于删除“公共”文件夹。 URL的一部分。代码如下:
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
它基本上抓住每条路线并将其重定向到公共文件夹,完全按照您的意愿!
第二: 您应该在&#39; / public&#39;中创建另一个.htaccess文件。用于将所有内容重定向到index.php文件的文件夹。该代码应如下所示:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]
您最终应该采用以下结构:
localhost/
root/
.htaccess (removes 'public')
data/
app/
public/
index.php
.htaccess (forward to index.php)
这应该可以解决你的问题。如果确实如此,请将我的答案标记为解决问题的答案,将问题标记为已完成。如果没有,请评论您遇到的其他问题!