apache - 使用 Symfony2 和 html5boilerplate 重定向规则的 400 错误请求

标签 apache .htaccess vhosts boilerplate

我最近转而使用 Symfony2 PHP 框架,并希望从一开始就包含 html5boilerplate 的所有优点,但是在合并两者的 .htaccess 文件时遇到了一些问题。

前三名来自样板;从 www.example.com 重定向到 example.com,从 example.com/test 重定向到 example.com/test/,并限制访问任何以 . (例如,.git)。

最后是 Symfony2 对前端 Controller 的重写。如果没有其他重定向发生,我希望可以访问它(因此 example.com/hello/应该到达它)。

<IfModule mod_rewrite.c>
  RewriteCond %{HTTPS} !=on
  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
</IfModule>

<IfModule mod_rewrite.c>
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
  RewriteRule ^(.*)$ /$1/ [R=301,L]
</IfModule>

<IfModule mod_rewrite.c>
  RewriteRule "(^|/)\." - [F]
</IfModule>

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

如果最后一次重写被评论,Apache 返回一个 400 Bad Request,我不太清楚为什么。重定向设置为外部 (R=301) 所以它应该重新评估,并进入应用程序.php 一个。

重写也已设置为开启。

任何建议都很好,没有太多的重写增益 =(

最佳答案

我尝试了您的配置并且没有问题到达我的 Symfony2 设置。

尝试将您的请求重定向到 app_dev.php 而不是 app.php 以便您可以跟踪真正的错误。

还是我误解了你的问题?

关于apache - 使用 Symfony2 和 html5boilerplate 重定向规则的 400 错误请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6182318/

相关文章:

apache - 一个 Magento 安装有两个网站,在不同的虚拟主机上

php - 使用 fastcgi 在 Apache 上配置两个虚拟主机

node.js - 使用 Apache 和反向代理将 domain.com/api 路由到特定端口

java - 在jsp上使用java函数导致错误

.htaccess - 根据查询字符串设置 htaccess 重定向

linux - 防止 htaccess 将 IP 重定向到 www

php - 用文本重写 URL

node.js - Express 中跨子域的 session

python sqlite3操作错误: attempt to write a readonly database

使用 pdfbox preflight 2.0.13 验证 pdf 时出现 java.lang.OutOfMemoryError