1

私のWebサイトには、3〜4種類のURLがあります(それぞれが異なるページを表すために異なるパラメーターを持つことができます)。それらは、、、などのようなhttp://foo.com/users/usernameものhttp://foo.com/questions/question_textですhttp://foo.com/new_question

私はmod_rewriteクライアント側から来るURLを書き直すために使用します。つまり、にhttp://foo.com/users/usernameなりますhttp://foo.com/users?username=username。その後、このリクエストはに送られhttp://foo.com/users、残りはになります。

これらの3〜4個の事前定義されたテンプレートを除いて、のような他の要求が来た場合http://foo.com/abracadabra、ユーザーはホームページにリダイレクトされる必要がありますhttp://foo.com/。このキャッチオールリダイレクトを実装できるそのようなディレクティブはありますか?

4

1 に答える 1

1

長い道のりは次のようになります。

RewriteEngine On
# If the request isn't actually a file
RewriteCond %{REQUEST_FILENAME} !-f
# If the request isn't actually a directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request isn't specifically for favicon.ico (though the first 
# RewriteCond should take care of this, it's in the first .htaccess file
# I grabbed to verify)
RewriteCond %{REQUEST_URI} !=/favicon.ico
# Change the request from whatever the user entered to "/"
RewriteRule ^(.*)$ /

しかし、あなたは本当にこれをするべきではありません。実際に404エラーを提供し、要求されたページが存在しない場合はカスタムエラーページを提供する方がはるかに便利です。また、これを実行し、サイトでサードパーティのセキュリティスキャンを実行する必要がある場合は、レポート用に大量の誤検知のセキュリティホールが生成されます。

于 2012-09-21T20:30:41.437 に答える