1

存在しない Web ページを index.php にリダイレクトしようとしています。

このデータを使用して、index.php と同じフォルダーに .htaccess ファイルを作成しました。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR]
Rewritecond %{REQUEST_FILENAME} -d

RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

私は Wampserver を使用しており、Apache サーバーの httpd.conf は次のように設定されています。

AllowOverride すべて

しかし、まだ存在しない Web ページに入ろうとすると、404 エラーが発生します。何か案が?

編集。ちなみに、私はこの投稿をここで見て、そこに保持されているものを試しましたが、うまくいきませんでした.

4

1 に答える 1

4

ErrorDocumentディレクティブを使用してみませんか?

ErrorDocument 404 index.php

これははるかに単純で、オーバーヘッドがはるかに少なくなります。

mod_rewriteの使用を主張する場合は、De Morganの法則を使用できます。ページが存在する場合は気にしないでください。とにかく通常どおりに提供されるため、明示的なRewriteRule^。*$を実行する必要はありません。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-l
Rewritecond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php [NC,L]

そうは言っても、あなたが投稿したスニペットは機能するはずだと思います。私はWampserverにまったく精通していませんが、mod_rewriteモジュールを明示的に有効にする必要があるようです。

また、ロボットやユーザーにページが存在しないことを示さずに、存在しないページをindex.phpにリダイレクトすることは、あまり良い考えではありません。有効なページへのリンクがあるかなりエラーのあるページの方がはるかに良い選択です。

于 2012-05-24T16:12:01.883 に答える