【问题标题】:htaccess change webroot and protect fileshtaccess 更改 webroot 并保护文件
【发布时间】:2011-06-25 15:33:33
【问题描述】:

我一直确保我的应用程序代码、配置文件、日志等存储在 webroot 之外。这只是常识。所以,我的项目结构看起来像......

/app/
/config/
/web/

我的客户已经使用了 godaddy,所以我愚蠢地向他们注册了一个基本的 linux 托管包,然后才意识到他们不允许您访问您的 webroot 上一级或将您的 webroot 更改为低一级。

他们的技术支持人员刚刚告诉我在其中创建一个新文件夹并将其命名为“web”并对其进行“HTML 重定向”。啊。那么显而易见的问题是有人可以简单地浏览到mydomain.com/config/database.yml

所以,我非常接近只是移动主机,但我想知道是否有人知道一种方法(我想是 htaccess)我可以透明地将所有对 mydomain.com 的请求重定向到 mydomain.com/web。然后,确保 /app/、/config/ 等中没有文件可以访问...

在 /web/ 目录中,我需要 mod_rewrite,因为它是一个 symfony 应用程序。

编辑:我已将以下 .htaccess 添加到项目的根目录

Options All -Indexes

<FilesMatch "\.(htaccess|htpasswd|ini|php|log|yml)$">
Order Allow,Deny
Deny from all
</FilesMatch>

这给了我一些信心。但我还是不希望人们不得不去:

mydomain.com/somestupidsubfolder

【问题讨论】:

  • 哈哈一些愚蠢的文件夹!我在我的网站上也有同样的担忧。

标签: apache .htaccess mod-rewrite symfony1


【解决方案1】:
RewriteEngine On
RewriteRule ^/(.*)$ /web/$1

【讨论】:

  • 嗯,我试过了,但没有运气。可能与我的 /web/ 文件夹中的重写规则有关(标准 symfony 的)
  • @captainclam 该文件夹中的规则是什么?
【解决方案2】:

嗯,当您不能将您的源代码放在 webroot_dir 之外时,这种托管是很常见的问题。安全性不行,但没办法……我们应该把它放到web根目录下。

所以让所有源都存储在“项目”目录中:应用程序、缓存、配置、数据、库、日志、插件、测试等。 存储在名为“httpdocs”的 webrootdir 中的项目目录


index.php 包含类似的内容:

require_once(dirname(__FILE__).'/project/config/ProjectConfiguration.class.php');
$configuration = ProjectConfiguration::getApplicationConfiguration('frontend', 'prod', false);
sfContext::createInstance($configuration)->dispatch();

项目配置文件ProjectConfiguration.class.php包含:

//full path to autoload
require_once '/usr/local/www/vhosts/mywebsite.com/httpdocs/project/lib/symfony/autoload/sfCoreAutoload.class.php';
sfCoreAutoload::register();

class ProjectConfiguration extends sfProjectConfiguration
{
  public function setup()
  {
    $this->setWebDir($this->getRootDir() . '/..'); // <<<-- this does the trick
    $this->enablePlugins(...);
  }
}

并且不要忘记使用 htaccess 关闭您的源(“项目”目录)。

gl

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-16
    • 2010-10-12
    • 1970-01-01
    • 2012-12-15
    • 2012-07-02
    • 1970-01-01
    相关资源
    最近更新 更多