タグ付けされた質問 「escaping」

1
Apache mod_rewriteはリダイレクト時にクエリ文字列をダブルエンコードします
クエリ文字列を渡す際のApache mod_rewriteの動作に関する奇妙な問題(おそらくバグ?)に遭遇しました。 再現するために、デフォルトのApache構成でクリーンなUbuntu(oneiric)インストールをセットアップしました。mod_rewriteを有効にし、デフォルトのサイト構成で次を追加しました。 RewriteEngine on RewriteRule ^/(.*)$ /r/$1 [R] テストするには、curlを使用します。 curl -I 'http://[ubuntu-machine]/a/b%20c?a%20b' 関連する出力は次のとおりです。 HTTP/1.1 302 Found Server: Apache/2.2.20 (Ubuntu) Location: http://[ubuntu-machine]/r/a/b%20c?a%2520b ご覧のとおり、クエリ文字列は二重エスケープされていますが、これは間違っています。これを修正する方法はありますか?私たちが試したいくつかのこと: [NE]を追加します。これにより正しいクエリ文字列が得られますが、パスはエスケープされず、新しい問題につながります。 [NE、B]を追加します。これは機能しているように見えますが、パスのとの/間の部分がエスケープされます。ab クエリ文字列を手動でエスケープ解除します。 RewriteCond %{QUERY_STRING} .* RewriteMap unescape int:unescape RewriteRule ^(.*)$ $1?${unescape:%{QUERY_STRING}} ただし、これは、たとえば、クエリ文字列で&エスケープさ&れたan とエスケープされた文字を区別できないことを意味します。 更新: このバグレポートでは、同じ問題について説明しています。最初のコメントは明らかに問題を修正するコミットにリンクしていますが、Pieterが以下で述べているように、実際に修正されているようには見えません。

3
パス内の「 `」(アクセント記号/バックティック)をどのようにエスケープしますか?
よく使うファイルやフォルダには、「アクセント記号」文字(非シフトチルダ、バックティック、または普通のアクセント、whathaveyou ..)をプレフィックスとして付ける傾向があります。項目をアルファベット順に並べ替えながら、いくつかの項目を上部に表示することを選択できます。それは私がCLIまたはSSH / SCP経由でこれらのファイルにアクセスするために行くとき以外は、うまく動作します。 コマンドを実行しようとすると、ファイルをエスケープせずに呼び出し↝対話型セッションにキックされます。例えば↯ # scp -r dns.local:/`Downloads/CrazyRussianCars/ ~/ ↩ > それでも論理的な解決策を試してみたら↯ # scp -r dns.local:/\`Downloads/CrazyRussianCars/ ~/ ↩ bash: -c: line 0: unexpected EOF while looking for matching ``' bash: -c: line 1: syntax error: unexpected end of file 「新しい」ルールはexport NOW=$(date)vs export NOW= `date`のような構文を使用することを知っています (実際、SE MD構文で後者を書くのに時間がかかりました...)が、これはENVスクリプトとは無関係です。 .. 注: これは …

4
ack-grepを使用したリテラル「> \」の検索
文字通りより大きい文字(a ">")にスペース、バックスラッシュ文字(a "\")が続く行、つまり次の行を探しています:> \ エスケープすることでこれが可能になると思っていました。 $ ack-grep "\>" ">"を含む行を返します。 しかし、バックスラッシュをエスケープしようとすると、次のようになります。 $ ack-grep "\> \\" ack-grep:無効な正規表現 '\> \': 末尾の\正規表現m / \> /
9 grep  regex  escaping 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.