thinkphp5,laravel等项目部署在虚拟主机上无法忽略public目录解决方案

众所周知用虚拟主机站点都是默认的wwwroot目录,虚拟主机的默认跟目录是无法修改的。

但是thinkphp程序部分程序在开发的时候没有调整对应的程序入口,就需要网站访问默认指向到Public目录,其实不只tp,现在很多框架默认都把web对外的访问放在public下面了,为了网站更加安全鱼与熊掌不能兼得啊

经过科比不来it的研究总结,那么我们为了使用网站可以正常访问,可以在网站根目录下添加相应的伪静态规则,将对应的访问直接调整到Public目录,apahce 服务器直接增加以下代码在web根目录。

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

IIS7下伪静态规则:

<rules>
<rule name="public" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{URL}" pattern="^/public/" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="/public/{R:1}" />
</rule>
</rules>

nginx规则目前本站尚未用到,等大神评论区留言哈!

你可能感兴趣的:(Thinkphp,PHP,软件相关)