【问题标题】:.htaccess in Symfony2-based website基于 Symfony2 的网站中的 .htaccess
【发布时间】:2016-06-09 15:40:27
【问题描述】:

我已经在我的基于 Symfony2 的网站的根目录上安装了 Piwik(应该可以在 mywebsite.com/piwik/index.php 访问)并且我尝试配置我的 .htaccess 文件以便我可以绕过 '找不到“GET /piwik/index.php”异常的路由。

问题是我在配置.htaccess 方面做得不够好,结果我仍然得到上述异常。当然,我必须阅读教程。这就是我尝试配置我的 .htaccess 文件的方式:

  <IfModule mod_rewrite.c>  
    RewriteEngine On
    RewriteRule ^piwik/ - [L] 
    RewriteBase /        
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /app.php [QSA,L]
</IfModule>

有什么建议吗?提前致谢。

【问题讨论】:

    标签: php apache .htaccess symfony mod-rewrite


    【解决方案1】:

    Symfony 在 web/.htaccess 中默认使用此重写规则:

    # If the requested filename exists, simply serve it.
    # We only want to let Apache serve files and not directories.
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]
    

    因此您应该能够将piwik/ 目录放到web/ 目录中(因此,index.php 将是[SymfonyAppRoot]/web/piwik/index.php)并访问那里的页面。

    通过这样做,您允许 Apache 在 Symfony 有机会妨碍之前为 /piwik/index.php 提供服务。

    【讨论】:

    • 非常感谢,@HPierce!它工作得很好,你让我很开心!
    • 我发现 app.php 不再被访问,因此每当我请求任何资源时都会出现以下异常:“请求的 URL /mywebsite/web/diapers在此服务器上找不到。此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。"
    • @PatrickBass,这很奇怪。我在这里强调的重写规则不会改变这种行为。在不知道您在此处发布的内容的情况下,我怀疑您可能无意中更改了 .htaccess 中的其他默认值之一。我建议你找到 Symfony 附带的默认 .htaccess 的新副本,看看会发生什么。
    • 再次感谢您的评论。最后,我设法通过结合你的方法和我的方法来解决这个问题。我已经像以前一样重新配置了我的 .htaccess 文件(请参阅上面的第一个代码)将它放在 web/ 文件夹中,并按照您的建议将 /piwik 文件夹保存在 /web 中。
    猜你喜欢
    • 2019-03-11
    • 1970-01-01
    • 2015-01-08
    • 1970-01-01
    • 2017-06-12
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多