بررسی مشکلات پیوند یکتا و سئو وردپرس در سرور ویندوزی

مشکلات کارکردی وردپرس در سرور ویندوز  web.config

باور کنید نیمی از قدرت یک وبسایت وردپرسی در سرور ویندوزی از بین میرود . من توصیه میکنم از این کار اجتناب کنید – سرعت پایین لود مهمترین مشکل کارکرد وردپرس در سرور ویندوی میباشد – پیوند های یکتا هم دومین مشکل بزرگ میباشد .

 استفاده از پیوند یکتای فارسی وردپرس در سرورهای ویندوزی

اگر شما هم از سیستم مدیریت محتوای وردپرس بر روی ویندوز سرور ۲۰۰۸ و وب سرور IIS استفاده کرده باشید با این مورد مواجه شده اید که پیوندهای یکتای فارسی (Permalinks) بر روی این وب سرور قابل استفاده نمی باشند و صفحاتی که به صورت فارسی لینک شده اند لود نمی شوند.در سرویس های لینوکسی برای استفاده از پیوند یکتا می بایست کدهای مربوطه را در فایل .htaccess قرار دهید اما در سرورهای ویندوزی امکان استفاده از این فایل وجود ندارد و تنظیمات را می بایست از طریق فایل 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>

در نهایت محتویات فایل web.config شما به شکل زیر خواهد شد:
کد:
<?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 اشتباه نگیرین. فایلی که ما لازم داریم در تصویر زیر می بینین.

 

پس از انجام این موارد امکان استفاده از پیوند یکتای فارسی برای شما فراهم خواهد شد.

توجه داشته باشید اگرچه در این پست نحوه استفاده از لینک های فارسی برای سیستم مدیریت محتوای وردپرس شرح داده شده است، این روند برای سایر سیستم ها نیز پاسخگو است و با انجام مراحل یک و دو شما می توانید از لینک های فارسی برای وبسایت های خود و سایر سیستم های مدیریت محتوا (مانند جوملا) استفاده کنید.

mir amir

کارشناس الگوریتم گوگل - کارشناس سئو و بهینه سازی سایت برای موتورهای جستجو - mir amir - website optimizer engineer

دیدگاهتان را بنویسید