【问题标题】:laravel 4 using a subdomainlaravel 4 使用子域
【发布时间】:2013-11-05 21:20:37
【问题描述】:

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

我的结构是这样设置的:

username
-public_html
--subdomain
---public

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

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

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

这是不是很糟糕,我应该把 laravel 核心文件移到 public_html 上面吗?

我希望这是有道理的

谢谢

【问题讨论】:

    标签: laravel subdomain


    【解决方案1】:

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

    我不知道你的服务器配置以及你可以访问哪些文件夹,但是如果你可以访问其他目录,你可以在public_html以外的其他地方设置laravel并设置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>
    

    希望这会有所帮助。

    【讨论】:

    • 感谢 Tharumax,所以即使我的 laravel 核心文件文件夹位于 public_html 文件夹中,它仍然可以放在那里吗?当我浏览到普通域上的这个文件夹时,它给了我一个禁止。这样可以吗?
    • 只要用户不能通过网络访问核心文件,我认为没问题。可能是您的apache 配置默认禁用DirectoryIndex。您可以通过 Web 访问单个核心 .php 文件吗?喜欢mysite.com/subdomain/server.php。如果需要额外的配置。
    猜你喜欢
    • 2013-09-30
    • 2013-10-13
    • 1970-01-01
    • 2013-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多