0

動作しない次の.htaccessがあります。

RewriteEngine on
RewriteBase /
RewriteRule ^find /findgames.php [L]
RewriteRule ^find/ /findgames.php [L]

'find'の文字'd'を削除すると、すべてがうまく機能します。

RewriteEngine on
RewriteBase /
RewriteRule ^fin /findgames.php [L]
RewriteRule ^fin/ /findgames.php [L]

私は何が欠けていますか?キーワードを見つけますか?2番目に「find」という文字が連続して表示されていると、Webサイトに「InternalServerError」が表示されます。

4

1 に答える 1

1

これは絶対に正しく、予想される動作(「内部サーバーエラー」メッセージ)です。文字がなくても同じエラーが表示されるはずですがd

理由-マッチングパターンが悪い-それは広義の方法です。どういう^find意味ですか?これは、-で始まるURLに一致することを意味しますfind(先頭のスラッシュはApacheによって削除されます)。/findこれは、、など/find/と一致/findmeします-ターゲットと同様に- /findgames.php

ほとんどの場合(この特定のケースでは)、Apacheがある時点で中断しなければならない無限の書き換えループがあるため、エラーが発生します。Apacheのエラーログで正確なエラーメッセージを確認できます。これにより、非常によく説明されます。

いずれにせよ-これはあなたのために働くはずです-それは(完全に一致する)/findだけでなく、へのリクエストをリダイレクトします。/find//findgames.php

RewriteEngine on
RewriteBase /
RewriteRule ^find/?$ /findgames.php [L]
于 2012-06-03T19:10:21.340 に答える