在共享主机上使用 Laravel 的 htaccess
htaccess with Laravel on shared hosting
我需要你的帮助。我已经在共享主机上部署了 Laravel 应用程序,并且添加了 htaccess 文件以将所有流量重定向到 public 目录。目录结构如下:
public_html
|
-------my_website
|
-------.htaccess
我知道,我不应该这样做,正确的方法是将 Laravel 的 public 目录内容放入 public_html 和 Laravel 应用程序的其余部分应该在它之外,但在这种情况下,由于某些原因(与代码无关)我不能这样做。现在我遇到了一个问题,因为任何人都可以通过直接点击 url 来访问网站的敏感部分,例如:
http://mywebsite.com/my_website/database/database.sqlite
我对 htaccess 了解不多,花了很多时间研究如何保护敏感文件,但我无法做到这一点。我的 htaccess 文件目前看起来像这样:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?mywebsite.com$
RewriteCond %{REQUEST_URI} !^/mywebsite/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /mywebsite/public/
RewriteCond %{HTTP_HOST} ^(www.)?mywebsite.com$
RewriteRule ^(/)?$ mywebsite/public/index.php [L]
RewriteRule ^/?$ "https\:\/\/www\.mywebsite\.com" [R=301,L]
RewriteCond %{HTTPS} !=on
RewriteRule .* https://mywebsite.com%{REQUEST_URI} [R,L]
如有任何帮助,我们将不胜感激。
This repo on github,是关于如何在共享主机
上部署 laravel 的好教程
举个例子,因为你向 sqlite 文件显示 link,考虑这个:
RewriteRule ^mywebsite/database - [F,L]
这将阻止对那个 sqlite 文件的 HTTP 请求。您还可以向其中添加其他目录,因此如果您还想保护目录 foo,则:
RewriteRule ^mywebsite/(database|foo) - [F,L]
这是保护 Apache
上 PHP 应用程序 运行 目录的非常常用的技术
在共享主机上与我一起工作,并从 public 文件夹
启动项目
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/ [L]
</IfModule>
<Files .env>
Order allow,deny
Deny from all
</Files>
我需要你的帮助。我已经在共享主机上部署了 Laravel 应用程序,并且添加了 htaccess 文件以将所有流量重定向到 public 目录。目录结构如下:
public_html
|
-------my_website
|
-------.htaccess
我知道,我不应该这样做,正确的方法是将 Laravel 的 public 目录内容放入 public_html 和 Laravel 应用程序的其余部分应该在它之外,但在这种情况下,由于某些原因(与代码无关)我不能这样做。现在我遇到了一个问题,因为任何人都可以通过直接点击 url 来访问网站的敏感部分,例如:
http://mywebsite.com/my_website/database/database.sqlite
我对 htaccess 了解不多,花了很多时间研究如何保护敏感文件,但我无法做到这一点。我的 htaccess 文件目前看起来像这样:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?mywebsite.com$
RewriteCond %{REQUEST_URI} !^/mywebsite/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /mywebsite/public/
RewriteCond %{HTTP_HOST} ^(www.)?mywebsite.com$
RewriteRule ^(/)?$ mywebsite/public/index.php [L]
RewriteRule ^/?$ "https\:\/\/www\.mywebsite\.com" [R=301,L]
RewriteCond %{HTTPS} !=on
RewriteRule .* https://mywebsite.com%{REQUEST_URI} [R,L]
如有任何帮助,我们将不胜感激。
This repo on github,是关于如何在共享主机
上部署 laravel 的好教程举个例子,因为你向 sqlite 文件显示 link,考虑这个:
RewriteRule ^mywebsite/database - [F,L]
这将阻止对那个 sqlite 文件的 HTTP 请求。您还可以向其中添加其他目录,因此如果您还想保护目录 foo,则:
RewriteRule ^mywebsite/(database|foo) - [F,L]
这是保护 Apache
上 PHP 应用程序 运行 目录的非常常用的技术在共享主机上与我一起工作,并从 public 文件夹
启动项目<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/ [L]
</IfModule>
<Files .env>
Order allow,deny
Deny from all
</Files>