مشکلات کارکردی وردپرس در سرور ویندوز web.config
باور کنید نیمی از قدرت یک وبسایت وردپرسی در سرور ویندوزی از بین میرود . من توصیه میکنم از این کار اجتناب کنید – سرعت پایین لود مهمترین مشکل کارکرد وردپرس در سرور ویندوی میباشد – پیوند های یکتا هم دومین مشکل بزرگ میباشد .
استفاده از پیوند یکتای فارسی وردپرس در سرورهای ویندوزی
برای رفع این مشکل دو اقدام می بایست انجام شود:
۱. در IIS Manager سرور پس از انتخاب نام سایت از بخش Sites بر روی ماژول URL Rewrite دو بار کلیک کرده تا وارد تنظیمات آن شوید. ( در صورتی که این ماژول را نمی بینید بر روی سرور شما نصب نیست و می توانید توسط Web Platform Installer آن را نصب کنید.) پس از ورود به تنظیمات URL Rewrite از سمت راست صفحه بر روی گزینه View Server Variables کلیک کنید. (اگر این گزینه را نمی بینید نسخه ماژول URL Rewrite شما کمتر از ۲ می باشد و برای استفاده از این امکان می بایست به نسخه ۲ ارتقا دهید.) پس از ورود به این بخش از سمت راست صفحه بر روی گزینه Add کلیک کرده و در کادر باز شده مقدار REQUEST_URI را اضافه کنید.۲. پس از افزودن مقدار REQUEST_URI می بایست کد زیررا به فایل web.config خود اضافه کنید
تبدیل htaccses to web.config
<serverVariables> <set name=”REQUEST_URI” value=”{UNENCODED_URL}” replace=”true” /> </serverVariables>
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="WordPress Rule" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php" /> <serverVariables> <set name="REQUEST_URI" value="{UNENCODED_URL}" replace="true" /> </serverVariables> </rule> </rules> </rewrite> </system.webServer> </configuration>
برای رفع این مشکل موارد ذیل باید انجام شود:
1. ضمن اینکه در سرور ویندوز باید url rewrite فعال باشد، باید در قسمت view server variables آنREQUEST_URI اضافه شود.
2. در web.config سایت تان و قبل از تگ </rule> عبارت ذیل را وارد کنید:
<serverVariables>
<set name=”REQUEST_URI” value=”{UNENCODED_URL}” replace=”false” />
</serverVariables>
3. در فایل index.php بلافاصله پس از <?php عبارت ذیل را درج کنید:
/** Fix redirect on homepage as well as UNICODE URL rewrite issue */
if (isset($_SERVER[“UNENCODED_URL”])) $_SERVER[“REQUEST_URI”] = $_SERVER[“UNENCODED_URL”];
مشکل در استفاده از پیوند های یکتا (web.config
پیوندهای خوشگل یکتا نقش خیلی مهمی در سئو سایت شما دارند. برای تنظیم پیوندهای یکتا در وردپرس روی هاست های لینوکس شما وارد قسمت پیوند های یکتا میشین فرمت پیوند رو انتخاب و تنظیم می کنین و روی “ذخیره تغییرات” کلیک می کنین و داستان همینجا تموم میشه اما روی هاست ویندوز داستان تازه شروع میشه.
بعد از اینکه فرمت پیوندهای یکتا رو به دلخواه تنظیم کردین با استفاده از پنل هاست یا اکانت FTP فایل web.config (نقش .htaccess رو هاست های لینوکسی رو داره) موجود درشاخه اصلی wwwroot رو بازکنید و اگر کد زیر داخلش نبود واردش کنید. دلیل اینکه میگم اگر داخلش نبود اینه که وردپرس به صورت اتوماتیک سعی می کنه این تکه کد رو داخل فایل web.config بنویسه ولی از اونجایی که IIS تنظیمات سختگیرانه ای برای خوندن و نوشتن فایل ها داره، معمولا این اتفاق نمی افته (بستگی به تنظیمات امنیتی سرور و سطوح دسترسی داره) در نتیجه باید خودتون وارد کنید. موقع کار با فایل web.config نهایت دقت رو داشته باشین چون در صورت اشتباه در تایپ و رعایت نکردن سینتکس ، سایتتون پیغام خطای IIS رو نشون میده.
<?xml version=“1.0” encoding=“UTF-8”?><configuration><system.webServer><rewrite><rules><rule name=”WordPress Rule” stopProcessing=”true”><match url=”.*” /><conditions><add input=”{REQUEST_FILENAME}” matchType=”IsFile” negate=”true” /><add input=”{REQUEST_FILENAME}” matchType=”IsDirectory” negate=”true” /></conditions><action type=”Rewrite” url=”index.php” /></rule></rules></rewrite></system.webServer></configuration>
خب حالا شما خوشحالید چون فکر می کنید دیگه کار تموم شده اما هنوز ممکنه نشده باشه.
اگر در آدرس های URL سایت شما فقط کلمات انگلیسی باشه کار تمومه و مشکلی پیش نمیاد.
اما اگر آدرس URL شامل کلمات فارسی باشه یه مشکل دیگه به وجود میاد. در این داستان جدید صفحه ی اول سایت شما خوشگل میاد بالا اما در صفحات دیگر سایت باپیغام خطای ۴۰۴ مواجه می شین یا اینکه صفحه مورد نظر به صفحه اصلی رجوع داده میشه (Redirect).
برای اینکه این مشکل رو هم بر طرف کنین باید تکه کدی رو در فایل index.php که در شاخه اصلی وردپرس(wwwroot) وجود داره وارد کنین. دقت کنین این فایل رو با فایل index.php موجود در پوشه theme اشتباه نگیرین. فایلی که ما لازم داریم در تصویر زیر می بینین.
توجه داشته باشید اگرچه در این پست نحوه استفاده از لینک های فارسی برای سیستم مدیریت محتوای وردپرس شرح داده شده است، این روند برای سایر سیستم ها نیز پاسخگو است و با انجام مراحل یک و دو شما می توانید از لینک های فارسی برای وبسایت های خود و سایر سیستم های مدیریت محتوا (مانند جوملا) استفاده کنید.