.htaccess打破文件路径上传

问题描述:

我有一个Symfony 2项目,我不得不使用.htaccess配置来隐藏前面的文件和网页目录,但在这个过程中,这意味着我无法访问公共上传我创建的文件夹。有没有办法可以为该路线创建符号链接或例外?.htaccess打破文件路径上传

这里是我当前的.htaccess

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 

    # Explicitly disable rewriting for front controllers 
    RewriteRule ^/web/app_dev.php - [L] 
    RewriteRule ^/web/app.php - [L] 

    # Fix the bundles folder 
    RewriteRule ^bundles/(.*)$ /web/bundles/$1 [QSA,L] 

    RewriteCond %{REQUEST_FILENAME} !-f 
    # Change below before deploying to production 
    RewriteRule ^(.*)$ /web/app.php [QSA,L] 
    #RewriteRule ^(.*)$ /web/app_dev.php [QSA,L] 
</IfModule> 

提前感谢!

+0

为什么不把DocumentRoot指向web目录? –

您可以添加一个例外,以不重写某个文件夹,就像禁用前端控制器重写一样。只需添加RewriteRule ^path-to-folder/.* - [L]即可使用,并且可以访问路径至文件夹中的文件。

+0

非常完美,非常感谢! –

您可以创建一个例外,就像你已经做了:

#disable redirecting for all the files in /web/upload dir 
RewriteRule ^web/upload/.* - [L] 

将这个进入的.htaccess的开始,重定向发生前,将停止处理。有一件事,我不明白,为什么在开始时会有额外的斜线:^/web。因为在.htaccess条件中应该省略第一个斜杠。