2016-07-05 12 views
1

reaquestパラメータが指定されていない場合、つまり「/?qwerty」(「qwerty」は「=」および任意の値のない無効なパラメータを意味します)がリダイレクトされなければならない場合、サイト上で404ページにリダイレクトするよう指示しました。私は.htaccessファイル(サイトはJoomlaで動作します)を書きました。あなたは以下の断片見ることができます:パラメータが.htaccess経由で値を持たないURLを404ページにリダイレクトする方法はありますか?

RewriteCond %{REQUEST_METHOD} GET 
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR] 
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR] 
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [OR] 
#Next string redirects all of requests with parameters 
RewriteCond %{QUERY_STRING} [a-zA-Z0-9_] [NC] 
RewriteRule ^(.*)$ index.php [R=404,L] 

をしかし、今サイトでは、パラメータを持つすべての要求を処理できません。どうすればこの問題を解決できますか? 404にリダイレクトする

答えて

0

クエリ値パラメータが欠落している場合、あなたが使用することができます。

RewriteEngine on 


RewriteCond %{QUERY_STRING} ^querty$ [OR] 
RewriteCond %{QUERY_STRING} ^querty=$ 

RewriteRule ^$ - [R=404,L] 

これは/404example.com/?quertyまたはexample.com/?querty=をリダイレクトします。

+1

ありがとうございますが、パラメータ名をリダイレクトする必要があります。あなたは私にアイディアを与えました。以下のコードは私が望むように動作します: 'RewriteCond%{QUERY_STRING}^[a-zA-Z0-9 _] + $ [OR] RewriteCond%{QUERY_STRING}^[a-zA-Z0-9_ ] + = $ [NC] RewriteRule^$ - [R = 404、L] ' – andreytemn

関連する問題