0
ここで私が何をしようとしています何であるかどうかに基づいて、.htaccessを介してすべてのURLやファイルの要求をリダイレクトする:ファイルが存在するかどうか
- ファイルがファイルシステムから要求され、それが存在しない場合は、URLを書き換えますファイルが要求され、それがファイルシステムに存在しない場合、
- を/index.php?404 を/index.php?dataするURLを書き換え、他のすべてのケースで
- を/index.php?fileするURLを書き換えます
しかし、私は50結果として0のエラーは、誰が問題があるかもしれないか知っていますか?私は過去にRewriteEngineを使用しましたが、このような特別なケースではどのように使用するかについてはまだ分かりません。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} (.*\.([a-zA-Z]{2,4}))$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* ./index.php?404 [L]
RewriteCond %{REQUEST_FILENAME} (.*\.([a-zA-Z]{2,4}))$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .* ./index.php?file [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* ./index.php?data [L]
上記のシステムは、2番目の条件を満たすと機能します。正規表現自体は同じなので、これは私を混乱させます。 – kingmaple
無限のリライトループがあります。解決するには、すでに書き換えられたURLを書き換えないための余分な条件を追加するか、少なくともindex.phpへのリクエストを無視してください。 P.S.どのように 'L'フラグが動作するの:http://stackoverflow.com/questions/6797998/rewriterule-last-l-flag-not-working – LazyOne
あなたは正しい、それは書き換えループだった。あなたが答えを出すなら、私はこれを答えとして受け入れます。 – kingmaple