我在我的网站上使用Laravel,但我遇到了一个问题。
我的网站没有任何 public_html 或 htdocs 文件夹,但根本身已经公开了。因此,我不得不将所有Laravel文件放到根文件夹中。
对于谁不知道,当使用Laravel时,公共文件夹通常是子文件夹 public ,因此,如果我想访问我的Laravel Web应用程序,我必须导航到{{3} }。
我需要编辑.htaccess,以便从http://www.mywebsite.com/public显示子文件夹 public 文件,并拒绝对根文件的任何访问。
因此http://www.mywebsite.com/应为http://www.mywebsite.com/public/index.php,http://www.mywebsite.com/index.php应为http://www.mywebsite.com/public/images/logo.png,依此类推。
现在我想知道,它甚至可能吗?
Laravel .htaccess原始文件是:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
答案 0 :(得分:0)
我通过编辑原始.htaccess来成功解决这个问题:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond public/%{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ public/$1 [L,R=301]
# Handle Front Controller...
RewriteCond public/%{REQUEST_FILENAME} !-d
RewriteCond public/%{REQUEST_FILENAME} !-f
RewriteRule ^ public/index.php [L]
</IfModule>