从共享主机上的URL Laravel 5.3中删除public

时间:2017-02-10 11:13:43

标签: php .htaccess laravel laravel-5.3

我在位于以下地址的共享主机上有Laravel 5.3项目:

  

www.mydomain.tld / laravel /公共/

如何删除" public"来自URL?

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}]

4 个答案:

答案 0 :(得分:0)

从公用文件夹中复制内容并将其放在根文件夹中

打开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';

答案 1 :(得分:0)

这种情况的最佳方法是使用符号链接。通过SSH登录您的网络服务器。将您的目录更改为您的网站。将其更改为父级。使用ln命令创建符号链接。将public_html替换为您的foldername(它可能有点像您的网站名称或www文件夹)。

ln -s public /your/full/path/public_html(使用pwd获取完整路径)

如果您的主机无法使用SSH,并且没有其他方法可以创建符号链接或编辑apache.conf文件,我建议您将主机更改为另一个。将整个应用程序提供给全世界是非常糟糕的做法。

答案 2 :(得分:0)

在根文件夹中,使用以下命令制作.htaccess文件:

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

答案 3 :(得分:0)

第一步非常简单,您只需重命名文件名即可。您必须在laravel根目录下将server.php重命名为index.php。

第二,您必须复制.htaccess文件并将其放入laravel根文件夹。您只需从公用文件夹中复制.htaccess文件,然后更新以下代码:

选项-MultiViews-索引

RewriteEngine开启

句柄授权标头

RewriteCond%{HTTP:Authorization}。

RewriteRule。*-[E = HTTP_AUTHORIZATION:%{HTTP:Authorization}]

如果不是文件夹,则重定向尾部斜杠...

RewriteCond%{REQUEST_FILENAME}!-d

RewriteCond%{REQUEST_URI}(。+)/ $

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]