.htaccess সমস্যা

আমার একটি পৃষ্ঠা আছে যা দুটি জিনিস করে:

When users click on this link: http://www.example.com/whatever_200/index.html/?id=4 it is actually processed by http://www.example.com/search/profile-condo.php?id=4

যাইহোক, আমি ব্রাজিলের লোকেদের জন্য নিম্নলিখিত কাজ করতে চাই www.example.com/br/whatever_200/index.html/?id=4 www.example.com/br/search/profile-condo.php?id=4

নিম্নলিখিত ইংরেজি সংস্করণ জন্য মহান কাজ করে:

addhandler x-httpd-php5 .html
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/index.html$ /search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]

কিন্তু যখন আমি যোগ

RewriteRule ^(.*)/br/^(.*)/index.html$ /br/search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]

এটা কাজ করে না।

আমি কি ভুল করছি?

0

1 উত্তর

আপনার নিয়ম সঙ্গে তিন সমস্যা আছে।

সব নিয়ম অর্ডার প্রথম। প্রথম নিয়ম /index.html এর সাথে শেষ হওয়া কিছু মিলবে, এবং এটি পুনঃনির্দেশ সম্পাদন করবে। এটি (সঠিকভাবে) চূড়ান্ত নিয়ম হিসাবে পতাকাঙ্কিত (<�কোড> এল পতাকা)। এর কারণেই, দ্বিতীয় রায় কার্যকর করা হবে না। যদি আপনি সাধারণ কোডটি আগে br rule যুক্ত করুন, এটি প্রথমে পরীক্ষা করা হবে এবং যদি এটি মিলছে তবে পুনঃনির্দেশটি ঘটবে।

দ্বিতীয় সমস্যা আপনার দ্বিতীয় নিয়ম নিয়মিত অভিব্যক্তি। এটি একটি সার্কফ্লেক্স ^ অর্ধেক অভিব্যক্তি রয়েছে। সেরেফ্লেক্স মানে স্ট্রিং শুরু , যা সম্ভবত স্ট্রিংয়ের মাঝখানে কখনও দেখা যায় না। Circumflex অপসারণ যে ঠিক করা হবে।

তৃতীয় বিষয় হল যে আপনি আপনার ইউআরএলের /br/ অংশের আগে অক্ষরগুলিকে অনুমতি দিচ্ছেন (আপনার মতামতটিতে (। *) রেখে। আপনার বর্ণনা অনুযায়ী, আপনি আসলে এই প্রয়োজন হয় না।

সারমর্ম:

addhandler x-httpd-php5 .html
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/br/(.*)/index.html$ /br/search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]
RewriteRule ^(.*)/index.html$ /search/profile-condo.php?name=$1&%{QUERY_STRING} [L,QSA]
1
যোগ
আপনাকে স্বাগতম ;-)
যোগ লেখক Ondergetekende, উৎস
আপনার উত্তর কোরে আমাকে সঠিক পথে রাখুন। অনেক ধন্যবাদ!
যোগ লেখক Hugo, উৎস