当前位置: 首页 > 知识库问答 >
问题:

如何在laravel 5.2中从url中删除public

谢旻
2023-03-14

我正在共享主机服务器中使用Laravel5.2。我想从url中删除public,而不将根目录中的server.php更改为index.php,因为这样做。env和其他文件是公开可见的。我的.htaccess如下所示:

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>

RewriteEngine On

# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,NC]

# Handle Front Controller...

RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,QSA]
RewriteRule ^(css|js|images|media)/(.*)$ /public/$1/$2 [L,NC]

</IfModule>

共有3个答案

竺绍辉
2023-03-14

最好的解决方案是将apache文档根指向laravel的公用文件夹。但正如你所说,你正在使用共享主机,那么这对你来说可能是不可能的。

现在要在url中不使用public访问laravel应用程序,请遵循以下问题laravel 5-从url中删除public

此外,您还担心其他文件夹(如app、config等)无法从浏览器访问。因此,要做到这一点,您可以将一个.htaccess文件放置在每个要阻止从浏览器访问的文件夹中,该文件的内容为Deny from all

柯甫
2023-03-14

在根目录中创建新的.htaccess文件,并使用以下代码粘贴

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^public
    RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

# php -- BEGIN cPanel-generated handler, do not edit
# Set the “ea-php56” package as the default “PHP” programming language.
<IfModule mime_module>
  AddType application/x-httpd-ea-php56___lsphp .php .php5 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit
袁子瑜
2023-03-14

您需要将您的域从cboard指向公共文件夹。

将.htaccess文件从/public目录移动到根目录,并将其内容替换为以下代码:

<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

</IfModule>
 类似资料:
  • 问题内容: 如何从静态页面的网址中删除? 另外,我需要将任何网址重定向到没有该网址的网址。(即到)。 问题答案: 感谢您的答复。我已经解决了我的问题。假设我的页面在下,则适用以下.htaccess 规则。

  • 很长一段时间都在坚持这一点。我发现了类似的问题,但没有一个答案对我有用。根文件夹中的htaccess如下所示:

  • 我试图用Python(而不是C#、PHP或其他)将%20符号从url转换为字符串后删除。然而,无论我尝试什么格式,符号都保持不变。 以下是我想要得到的:

  • 问题内容: 我使用node.js和socket.io。 我的应用程序在端口3000上运行。该应用程序从以下网址启动: **mydomain.com :3000/ ** 我想从 **mydomain.com** 运行该应用程序-我想从url中删除端口。 在哪里以及如何设置此设置? 问题答案: 查找您的呼叫并将端口从更改为。不要忘记,您必须运行具有该功能的程序(有关详细信息,请参阅),以便绑定到Lin

  • 很好的一天! 你好 目前我在laravel工作,我是新来的。我一直在寻找我的问题的解决方案,但我找不到解决方案。我laravel的工作是访问已经没有 /public在网址我修复这个通过. htaccess,但它可以访问也与 /public在网址。请看下面的链接供您参考。 https://utok.ph/ https://utok.ph/public 我的htaccess文件 重写引擎在重写规则 ^

  • 问题内容: 我正在使用react- router进行路由,并使用hashHistory选项,以便可以从浏览器刷新页面或指定现有路由之一的url并到达正确的页面。它工作正常,但我在URL中看到的哈希是这样的: http:// localhost /#/ login?_k = ya6z6i 这是我的路由配置: 问题答案: 您是否尝试过browserHistory选项?您还可以从浏览器刷新页面,或指定现