从网址中删除公开的4种最佳方法。
如果您使用其他任何技巧从URL中删除公共对象,例如将server.php的名称更改为index.php并更改为核心文件路径。显然,不要那样做。那为什么Laravel不提供这样的解决方案,因为这不是这样做的正确方法。
1)使用Laravel中的htaccess从URL中删除公共
通过将.htaccess文件添加到根目录中,您无需公开即可访问该网站
<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>
2)通过在本地创建虚拟主机来删除公共
我在这里为Windows操作系统提供演示。但是,我将尝试定义一个步骤,以便任何人都可以轻松地遵循该步骤。您也可以针对特定的操作系统在Google上进行相同的研究。
步骤1:转到C:\ Windows \ system32 \ drivers \ etc \以管理员模式打开“主机”文件。
步骤2:向其中添加以下代码。在这里,我为您演示了projectname.local域名演示,您可以随意指定。只要使它在每个地方都恒定即可。
127.0.0.1 projectname.local
步骤3:现在,C:\xampp\apache\conf\extra
对于xampp用户和wamp用户"C:\wamp\bin\apache\Apache2.4.4\conf\extra"
,打开"httpd-vhosts.conf"
文件。现在,将以下代码添加到其中。
注意:根据项目更改文档根目录,还将定义的域名添加到“主机”文件中。
<VirtualHost projectname.local>
ServerAdmin projectname.local
DocumentRoot "C:/xampp/htdocs/projectdir"
ServerName projectname.local
ErrorLog "logs/projectname.local.log"
CustomLog "logs/projectname.local.log" common
</VirtualHost>
步骤4:最后但重要的一步是重新启动Xampp或Wamp并像那样访问URL http://projectname.local
,Laravel将在没有公共URL的情况下响应。
3)通过在Laravel中运行命令来移除公众
如果您在本地工作,则无需执行任何操作,只需从终端或命令行工具运行以下命令即可。之后,您可以通过命令行通过提供的URL访问您的网站。
> php artisan serve
如果您愿意在特定IP上运行项目,则需要运行以下命令。如果您在LAN上工作,那么如果要允许其他人从本地访问您的网站,则只需在使IP地址按照命令运行之后,通过运行“ ipconfig”来使用命令行检查IP地址即可。
> php artisan serve --host=192.168.0.177
如果您愿意在具有特定端口的特定IP上运行项目,则需要执行以下命令。
> php artisan serve --host=192.168.0.177 --port=77
4)移除托管服务器或面板上的公共对象
项目完成后,您需要将项目托管在服务器上,然后只需将域中的文档根目录设置为公用文件夹。检查以下屏幕截图。
根据屏幕截图,如果您在public_html中没有任何项目文件夹,则只需将文档根目录设置为 "public_html/public"
。
参考来自这里