0

我在子域上运行 laravel,即 subdomain.mysite.com

我已经像这样设置了我的结构:

username
-public_html
--subdomain
---public

基本上,当我创建子域时,我设置的路径是subname/public子域指向公用文件夹。我已将 laravel 上传到子名称,因此当有人访问子域 url 时,它会查看公用文件夹并显示 laravel You've got 页面。

现在,当我浏览到 mysite.com/subname 时,它​​会给我一个禁止页面,当我浏览到 mysite.com/subname/public 时,它会显示 laravel 你已经到达的标志。

以这种方式在子域上设置 laravel 是否安全,或者我是否公开了应用程序/模型/控制器文件夹等?

这是否非常糟糕,我应该将 laravel 核心文件移到 public_html 之上吗?

我希望这是有道理的

谢谢

4

1 回答 1

0

通过正确的 Apache 配置(或您使用的任何其他服务器)和 .htaccess(在 Apache 的情况下),您可以限制对核心目录的访问,而不管您的文件位于何处。

我不知道您的服务器配置以及您可以访问哪些文件夹,但是如果您可以访问其他目录,您可以在下面以外的其他地方设置 laravelpublic_html并将public目录设置为可见,就像您在将其设置为子域。

如果您想设置为子文件夹,mysite.com您可以将 Laravel 安装保存在其他位置,并在下面提供符号public_html链接

ln -s /path/to/laravel/public /username/public_html/subdomain

在这种情况下,您需要将以下行添加到 .htaccess 文件中。

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On
    RewriteBase /subdomain # Add this line

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

希望这可以帮助。

于 2013-11-05T07:38:57.403 回答