编写.htaccess以保护Web App中的Symfony目录时出错

时间:2017-11-14 15:23:45

标签: php apache .htaccess symfony mod-rewrite

我试图在生产中发布我的第一个Symfony项目,但我非常担心安全问题,我采取了以下措施:

1)首先:删除 / var 这些目录:缓存,日志和会话

2)第二:更改了cookie会话的默认名称(客户端:symfony)

3)Trhee:在应用程序的根目录中创建 .htaccess

我的问题是关于.htaccess。目标是拒绝访问其他应用程序目录,例如: / app,/ src,/ test,/ var,/ vendor

我会在.htaccess中编写以下规则并将其放在我的应用的根目录中: myDevelopedApp / .htaccess

.htaccess
#Checking if module is avalaible
<IfModule mod_rewrite.c>
   #Using the rewrite engine
   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f
   #Rewrite rule to redirect the request
   RewriteRule ^(.*)$ web/$1 [QSA,L]
<IfModule>

问题是它无法正常工作,我在编写规则时无法访问Web文件夹。当我尝试通过浏览器访问它时,Apache隐藏应用程序myDevelopedApp

我错了什么? 非常感谢欢迎任何其他提高生产环境安全性的建议。

2 个答案:

答案 0 :(得分:2)

如果您真的担心安全问题,请遵循Symfony best practices。这意味着只能在vhost中访问/web文件夹。

此外,如果您使用标准版初始化项目,则.htaccess app/个文件夹中已有src/个文件。

答案 1 :(得分:0)

htaccess文件代码     

    .htaccess
    #Checking if module is avalaible
    
       #Using the rewrite engine
       RewriteEngine On
       RewriteCond %{REQUEST_FILENAME} !-f
       #Rewrite rule to redirect the request
       RewriteRule ^(.*)$ web/$1 [QSA,L]
    
    

以及.htaccess文件中的此代码

{{1}}

RewriteBase解决了这个问题