/ / RewriteRule ^。* $ index.php [NC、L] - アパッチ、.htaccess

RewriteRule ^。* $ index.php [NC、L] - アパッチ、.htaccess

存在しないウェブページを私の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 All

しかしそれでも私が存在しないウェブページに入ろうとすると404エラーが出ます。 何か案が?

編集します。 ところで、私はこの記事を見た ここに そしてそこに保持されているものを試してみたが、それは私のために働かなかった。

回答:

回答№1の場合は3

なぜ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モジュールを有効にする、あなたはそれをしましたか?

また、存在しないページをインデックスにリダイレクトします。phpは、ページが存在しないことをロボットやユーザーに知らせることなく、非常に良い考えではありません。有効なページへのリンクがあるかなりエラーのあるページのほうがはるかに良い選択でしょう。