وقتی که از URL Rewrite استفاده میکنید، یکسری ملاحظات امنیتی باعث میشه که کارکترهای یونیکد از آدرسهایی که شامل کارکترهای یونیکد هستن حذف بشن. برای همین، مثلن اینجا نمیتونید برید دیگه و وقتی برید اینجا، وردپرس فکر میکنه که صفحهی اصلی سایت باز شده.
ما سرورمون رو عوض کردیم. قبلن از IIS 7.5 استفاده میکردیم و اونجا، مشکلمون رو اینجوری حل میکردیم که به سرور میگفتیم که آدرسی که به وردپرس تحویل میدی، آدرس unencoded باشه. این مساله، این مشکل امنیتی رو به وجود میاره که اگر مثلن به IIS بگیم که فقط کاربرهایی که هویتسنجی شدن میتونن به test.php
دسترسی پیدا کنن، این محدودیت رو میشه با فرستادن ریکوئست به test%2ephp
دور زد.
نمیدونم چرا ولی توی IIS 8 با همون web.config به مشکل خوردیم و باعث میشد کلن همهی آدرسهامون internal server error بگیره. بنابراین پس از اندکی جستوجو، به اینجواب رسیدم. برای حل مشکل، کافیه به وردپرس بگیم که بهجای آدرسی که از سرور میگیری، آدرس unencodedش رو بگیر. برای اینکار اول wp-config.php
این کد رو اضافه میکنیم:
if ( isset($_SERVER['UNENCODED_URL']) ) {
$_SERVER['REQUEST_URI'] = $_SERVER['UNENCODED_URL'];}
سلام
بنده کد شما را در ابتدای web.config قرار دادم اما هنوز مشکل بر قرار است ممنون می شوم بنده را راهنمایی کنید