แก้ปัญหา WordPress บน IIS ไม่สามารถใช้งาน URL Rewrite ภาษาไทย

การทำพัฒาเว็บด้วย เวอร์ดเพรส  (WordPress) ได้รับความนิยม มากในปัจจุบัน โดย เวอร์ดเพรส เป็นเว็บแบบ บลอก (ฺBlog) ที่เน้นความง่ายต่อการใช้งาน และ รองรับ SEO

การปรับแต่ง เวอร์ดเพรส ให้ Url เป็นแบบ SEO Friendly ทำได้ดังนี้

ที่หน้า เวอร์ดเพรส หน้าควบคุม ไปที่ ตั้งค่า เลือก ตั้งค่าลิงก์ถาวร เลือกเป็นแบบ เชื่อเรื่อง

เวอร์ดเพรส - ตั้งค่าลิงก์ถาวร แบบ ชื่อเรื่อง
เวอร์ดเพรส – ตั้งค่าลิงก์ถาวร แบบ ชื่อเรื่อง

 

โดยปรกติแล้ว web hosting ที่นิยม มีอยู่ 2 ชนิดคือ

1 ลีนุกซ์ โฮสติ้ง (Linux hosting) มีการติดต้ัง Apache Server ทำหน้าที่เป็น เว็บเซอร์เวอร์ เน้นรองรับไฟล์ Html + PHP

2 วินโดส์ ฮสติ้ง (Windows hosting) มีการติดต้ัง IIS ทำหน้าที่เป็น เว็บเซอร์เวอร์ เน้นรองรับไฟล์ Html + ASP.NET และส่วนเสริม PHP

 

สำหรับ Apache Server นั้นมีการรองรับ การปรับแต่ง Url ให้สวยงาน เรียกว่า Mod Rewrite Url โดยใชไฟล์ “.htaccess” เป็นตัวกำหนดค่าต่าง การปรับแต่ง เวลา แต่ละเว็บ มีการเรียก Url ที่มีชื่อหรือ Keyword รวมเข้ามา

 

แต่ IIS Server จะใช้ไฟล์ “web.config” เป็นตัวกำหนดค่า การ Rewrite Url

ตัวอย่าง ไฟล์ 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" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

แต่ ปัญหาที่พบสำหรับ Url ที่มีภาษาไทย เป็นส่วนประกอบ คือ มันไม่งาน และทุกคร้ังที่เราเรียก Url ภาษาไทย มันเรียกไปที่หน้า Home แทน วิธีแก้ปัญหา ไม่ยากครับ สำหรับ เวอร์ดเพรส

 

1 แก้ไข ไฟล์ web.cofig

เพิ่ม requesturi={URL} เข้าไปใน <action type=”Rewrite”

ดังนี้

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="false"/>
<rewrite>
<rules>
<rule name="Plesk. WordPress redirect wpConfigRule " stopProcessing="true">
<match url="^wp-config.php$" ignoreCase="false"/>
<action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden"/>
</rule>
<rule name="wordpress" patternSyntax="Wildcard">
<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?requesturi={URL}"/>
</rule></rules>
</rewrite>
</system.webServer>
</configuration>

 

 

2. แก้ไข ไฟล์ index.php

เพิ่ม โค๊ด

$_SERVER[‘REQUEST_URI’] = isset($_GET[‘requesturi’]) ? $_GET[‘requesturi’] : ‘/’;

เข้าไปหลัง <?php

ตามตัวอย่าง

<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/

/*
* To fix IIS Rewrite Url
*/
$_SERVER['REQUEST_URI'] = isset($_GET['requesturi']) ? $_GET['requesturi'] : '/';
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

 

เท่านี้ ก็สามารถทำให้ เวอร์ดเพรส คุณมี  Url ที่สวยงาม บน IIS Server แล้ว

หรือ  

SEO Agency on sabtwitterSEO Agency on sabgoogleSEO Agency on sabfacebookSEO Agency on sabemail
SEO Agency
Web Developer with PHP / C#.NET / VB.NET
Database Developer with T-SQL / MY-SQL / MS-SQL
SEO Agency for GET SEO Services
¸¸.•*¨*•♫♪ Ƹ̵̡Ӝ̵̨̄Ʒ ♥ ♥ ¸.•*´ ♡♥ ★ ♡♥ ☆ `*•.¸ ♥ ♥ Ƹ̵̡Ӝ̵̨̄Ʒ
ผู้เชียวชาญด้านการพัฒนาเว็บไซด์ด้วย ภาาษ PHP / C#.NET / VB.NET
ผู้เชียวชาญด้านการพัฒนาออกแบบระบบฐานข้อมูล T-SQL / MY-SQL / MS-SQL
ให้บริการ ปรับแต่ง SEO สำหรับเว็บไซด์

One thought on “แก้ปัญหา WordPress บน IIS ไม่สามารถใช้งาน URL Rewrite ภาษาไทย

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *