我在共享主机上的Laravel 5.3项目位于以下地址:
www.mydomain.tld / laravel /大众/
如何从URL中删除“public”?
www.mydomain.tld / laravel / htaccess的
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ public/$1 [L]
www.mydomain.tld / 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]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
从公用文件夹中复制内容并将其放在根文件夹中
打开index.php并修改以下行
require __DIR__.'/../bootstrap/autoload.php';
至
require __DIR__.'path_to_laravel_folder/bootstrap/autoload.php';
&
$app = require_once __DIR__.'/../bootstrap/app.php';
至
$app = require_once __DIR__.'path_to_laravel_folder/bootstrap/app.php';
这种情况的最佳方法是使用符号链接。通过SSH登录您的网络服务器。将您的目录更改为您的网站。将其更改为父级。使用ln命令创建符号链接。将public_html替换为您的foldername(它可能有点像您的网站名称或www文件夹)。
ln -s public /your/full/path/public_html
(使用pwd获取完整路径)
如果SSH不适用于您的主机,并且没有不同的方法来创建符号链接或编辑apache.conf文件,我建议您将主机更改为另一个。将整个应用程序提供给全世界是非常糟糕的做法。
在根文件夹中生成.htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>