2011-11-25 6 views
16

URLに記事タイトルをエンコードしたいところにスラッシュが含まれているとします。 I URLは記事のタイトルをエンコードする場合、私は得る:むしろアイデアを台無しNGINXは%2fをスラッシュにエスケープしません。どうすればそれを止めることができますか?

http://example.com/articles/foo/bar/view/ 

http://example.com/articles/foo%2fbar/view/ 

は、nginxのは、私のようFastCGIアプリケーションにこれを渡します。しかし、これはそうではありません

http://example.com/path/to/page.html 
http://example.com/path/to%2fpage.html 

私はnginxのは、ファイルを提供している場合、/path/to/page.html、それは、次の2つのURLのいずれかによって到達することができると言うことに気付きます(例えば)Apache用。

この動作を修正する方法はありますか?

私は幸運にもドキュメントとGoogleを試しました。

ありがとうございました。

nginxの設定ファイル

UPDATE:

worker_processes 1; 
pid ./nginx.pid; 
events { 
    worker_connections 1024; 
} 
http { 
    server_tokens off; 
    server { 
     listen 80; 
     server_name localhost; 
     location /mysite/{ 
      fastcgi_pass unix: ./mysite.fcgi.socket; 

      fastcgi_param SERVER_NAME $server_name; 
      fastcgi_param SERVER_PORT $server_port; 
      fastcgi_param SERVER_PROTOCOL $server_protocol; 
      fastcgi_param SCRIPT_NAME "/mysite/"; 
      fastcgi_param PATH_INFO $fastcgi_path_info; 
      fastcgi_param REQUEST_METHOD $request_method; 
      fastcgi_param QUERY_STRING $query_string; 
      fastcgi_param CONTENT_TYPE $content_type; 
      fastcgi_param CONTENT_LENGTH $content_length; 
      fastcgi_pass_header Authorization; 
      fastcgi_intercept_errors off; 
     } 
    } 

} 
+0

何あなたのnginxの設定がどのように見えるん2fは%に触れていないのだろうか? – Amber

+0

も参照してくださいhttps://stackoverflow.com/a/37584637/873282 – koppor

答えて

2

は "%25" として

http://example.com/articles/foo%252fbar/view/ 
+0

間違ったビットを修正しようとしているように感じますが、悪い考え(+1)ではありません。 (エスケープ/アンエスケープを変更するのではなく、nginxの動作を変更する) – DaedalusFall

+1

これはかなり簡単な変更を実装することも、コアコードを変更しようとすることもできます。潮流がどのように流れているのかを見てみるか、潮を変えようとする。それはすべての選択肢です。 – Dayo

+0

:-)私はむしろ単純な設定ファイルの変更であることを望んでいました。その結果、私はPATH_INFOの$ URIを渡すことができますが、コードの最後を削除しなければならないことが分かりました。これは修正するのも間違っているようです。しかし、あなたが言うように、潮流...私はおそらく%252fのアイデアを実装する$ uriを見つけていませんでしたか? – DaedalusFall

0

を "%" をエスケープしてみますが、URLを使用する場合は、すべての問題を持っていません。クエリパラメータ。 あなたがのために行くことができるのルートサーバーを制御することができます。

http://example.com/articles/view/?path=foo%2fbar

をし、nginxのは

関連する問題