0

このURL書き換えルールがあります

RewriteRule ^(send-your-request.*)$ / [NC,L,QSA,R=301]

基本的には、URLから「/ send-your-request」を削除するだけです(つまり、ドメインのクエリ文字列パラメータで書き直します。

http://example.com/send-your-request/?a_aid=rocketnews24&pname=just%20a%20test

次のように書き直されます:

http://example.com/?a_aid=rocketnews24&pname=just%20a%20test

その場合は機能しますが、最後のパラメーターを追加すると機能しなくなります

http://example.com/send-your-request/?a_aid=rocketnews24&pname=just%20a%20test&plink=http%3A%2F%2Fradio-eva.jp%2Fshop%2Fproducts%2Fdetail.php%3Fproduct_id%3D82

誰かが私にすべてのクエリ文字列パラメータを処理できるより良い書き換えルールを教えてもらえますか?

ここで編集 するのは他のルールですが、最初のルールに「L」があるので、処理を正しく停止する必要がありますか?

RewriteRule ^(send-your-request.*)$ / [NC,QSA,R=301,L]
Redirect 301 /products http://whiterabbitexpress.com/
RewriteRule ^index\.php$ - [L]
RewriteCond %{QUERY_STRING} ^(.*)q=(.*)$
RewriteRule ^(.*)$ $1?%1s=%2 [L,R=301] 
RewriteRule ^catalogsearch/result/?$ / [NC,QSA,L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
4

2 に答える 2

1

解決済み:これは、注入から保護するために設計されたMod_securityルールでした。

SecRule REQUEST_URI "=(?: ogg | gopher | data | php | zlib |(?: ht | f)tps?)://" \ "capture、id:340165、t:none、t:urlDecodeUni、t:replaceNulls 、t:compressWhiteSpace、t:lowercase、rev:275、severity:2、msg:'Atomicorp.comサポートされていない遅延ルール:URI(AE)でのユニエンコード可能なリモートファイルインジェクションの試行'、logdata:'%{MATCHED_VAR}' "

ConfigServerModSecurityControlを介してルールを変更できました。

于 2012-11-12T11:13:02.350 に答える
0

約束はありませんが、同じことをする必要がありますが、試してみる価値のある代替案があります。リライトの?はQueryStringを削除し、その後、%1後方参照がそれを再追加します。

RewriteBase /
RewriteCond %{QUERY_STRING} (.*)
RewriteRule ^send-your-request/?$ /?%1 [NC,R=301,L]

QueryStringはリライトで自動的に渡され、QSA修飾子はaがリライトに存在する場合は追加のパラメーターを追加するだけであり?、リライトを省略QSAして含める?と、既存のQueryStringが削除されることに注意してください。をやめてみることもできますQSA

RewriteBase /
RewriteRule ^send-your-request/?$ / [NC,R=301,L]
于 2012-11-09T17:40:49.127 に答える