3

私は最近Symfony2PHPフレームワークの使用に移行し、最初からhtml5boilerplateの素晴らしさをすべて含めたいと思っていましたが、両方の.htaccessファイルをマージする際にいくつかの問題がありました。

上位3つは定型文からのものです。www.example.comからexample.com、example.com / testからexample.com/test/にリダイレクトし、先頭に。が付いたフォルダへのアクセスを制限します。(たとえば、.git)。

最後は、フロントエンドコントローラー用のSymfony2の書き直しです。他のリダイレクトが発生しない場合にこれにアクセスしたいのです(したがって、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)に設定されているため、再評価してapp.phpにアクセスする必要があります。 。

リライトもすでにオンに設定されています。

どんな提案も素晴らしいでしょう、書き直しバフの多くはありません=(

4

2 に答える 2

2

私はあなたの設定を試しましたが、Symfony2の設定に到達するのに問題はありませんでした。

実際のエラーを追跡できるように、app_dev.phpではなくにリクエストをリダイレクトしてみてください。app.php

それとも私はあなたの質問を誤解していますか?

于 2011-05-31T07:39:42.083 に答える
1

問題/質問が何であるかは100%わかりませんが、試してみましたか...

<IfModule mod_rewrite.c>
  RewriteEngine on

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

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

  RewriteRule "(^|/)\." - [F]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
于 2011-05-31T03:00:45.730 に答える