পুনর্নির্দেশে অ্যাপাচি মোড_আরাইট ডাবল এনকোড কোয়েরি স্ট্রিং


13

ক্যোয়ারী স্ট্রিংয়ের মধ্য দিয়ে যাওয়ার সময় অ্যাপাচি মোড_উরাইটের আচরণ নিয়ে আমরা একটি অদ্ভুত সমস্যা (একটি বাগ, সম্ভবত?) সম্মুখীন হয়েছি।

পুনরুত্পাদন করতে, আমরা ডিফল্ট অ্যাপাচি কনফিগারেশন সহ একটি পরিষ্কার উবুন্টু (একরিক) ইনস্টল করেছি। আমরা মোড_উইরাইট সক্ষম করেছি এবং ডিফল্ট সাইট কনফিগারেশনে আমরা নিম্নলিখিতগুলি যুক্ত করেছি:

RewriteEngine on
RewriteRule ^/(.*)$ /r/$1 [R]

পরীক্ষা করতে, আমরা কার্ল ব্যবহার করি:

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

আপনি দেখতে পাচ্ছেন, ক্যোরির স্ট্রিংটি ডাবল-পলায়নযোগ্য, যা ভুল। কারও কি ধারণা আছে যে আমরা কীভাবে এটি ঠিক করতে পারি? আমরা চেষ্টা করেছি কয়েকটি জিনিস:

  • [এনই] যুক্ত করা হচ্ছে। এটি আমাদেরকে সঠিক ক্যোয়ারী স্ট্রিং দেয় তবে পথটি অবিচ্ছিন্ন, যা নতুন সমস্যার দিকে পরিচালিত করে।
  • [এনই, বি] যুক্ত করা হচ্ছে। এটি কাজ করে বলে মনে হচ্ছে তবে পথের অংশ এবং অংশগুলির /মধ্যবর্তী স্থানগুলি থেকে বাঁচতে পারে।ab
  • ম্যানুয়ালি ক্যোরিয় স্ট্রিংটি আনসকেপিং করা হচ্ছে।

    RewriteCond %{QUERY_STRING} .*
    RewriteMap unescape int:unescape  
    RewriteRule ^(.*)$          $1?${unescape:%{QUERY_STRING}}
    

    যাইহোক, এর অর্থ আমরা কোয়েরি-স্ট্রিংয়ের মধ্যে &একটি , বলা, একটি এবং একজন পালিয়ে যাওয়া &মধ্যে পার্থক্য করতে পারি না ।

হালনাগাদ:

এই বাগ রিপোর্ট একই সমস্যা বর্ণনা করে। প্রথম মন্তব্যটি আপাতদৃষ্টিতে এই সমস্যাটিকে সংশোধন করার একটি প্রতিশ্রুতিতে লিঙ্ক করেছে, তবে পিটার নীচে যেমন বলেছেন, বাস্তবে এটি ঠিক হয়ে গেছে বলে মনে হয় না।

উত্তর:


7

এটি অ্যাপাচে একটি বাগ বলে মনে হচ্ছে। এই বাগ রিপোর্টটি কিছুটা অগোছালো তবে আপনার সমস্যাটি ঠিক বর্ণনা করছে:

https://issues.apache.org/bugzilla/show_bug.cgi?id=34602

দেখে মনে হচ্ছে তারা ইস্যুটি সম্পর্কে সচেতন। যদিও বাগ দাবি করেছে তারা ঠিক করেছে তবে আমি এটি অ্যাপাচি ২.৩.১৫ এর সাথে পরীক্ষা করেছি এবং এখনও সমস্যাটি মনে হচ্ছে। এও মনে রাখবেন যে অ্যাপাচি ২.৩ একটি বিটা সংস্করণ, সুতরাং অ্যাপাচি ২.৪ শেষ না হওয়া অবধি এটি যদি আপনার এটি ঠিক না করে তবে আপনার কোনও লাভ নেই।


দেখে মনে হচ্ছে অ্যাপাচি ২.৪.১০ এখনও এটি করছে, যদিও এটি ২.৪.১ এ স্থির করা উচিত ছিল ।
আরজান

1
আমি এখনও 2.4.7 সমস্যা দেখেছি
ফ্রাসোয়া
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.