【问题标题】:Symfony allow files access in Resources folder .htaccessSymfony 允许访问 Resources 文件夹 .htaccess 中的文件
【发布时间】:2017-04-06 17:01:02
【问题描述】:

我需要为所有人打开对以下文件夹的访问权限:

C:\xampp\htdocs\myapp\app\Resources\export

但我收到 403 Forbidden 错误。我尝试了许多变体,但仍然没有运气。我的 .htaccess 位于

C:\xampp\htdocs

如下:

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On

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

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /myapp/web/app.php [QSA,L]
RewriteRule (.*) $1 [E=SYMFONY_ENV:prod]

欢迎任何想法。谢谢。

【问题讨论】:

    标签: php .htaccess symfony


    【解决方案1】:

    问题是您服务器的 DocumentRoot 指向/web 目录,而/app 目录超出范围。也许您可以使用别名来解决它:

    Alias /export "C:/xampp/htdocs/myapp/app/Resources/export"
    <Directory "C:/xampp/htdocs/myapp/app/Resources/export">
        Options Indexes
        AllowOverride None
        Require all granted
    </Directory>
    

    使用alias 时,您必须在路由前加上别名作为资源的前缀。

    例如获取位于以下位置的资源 test.jpg:

    C:/xampp/htdocs/myapp/app/Resources/export/test.jpg
    

    你的请求应该是这样的:

    http://yourServerName/export/test.jpg
    

    这类路由的问题是Symfony路由无法管理,因为超出了服务器范围,但是可以使用host-matching,看这个问题:

    Routing prefix as follows the Virtual Host

    如果您使用别名,请记住启用别名模块,如果它被禁用。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-05
      • 2014-12-31
      • 1970-01-01
      • 2016-03-23
      • 2022-06-28
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多