ตอนนี้เราจะมีแต่เรื่องเกี่ยวกับ xenForo & vBulletin เป็นหลักนะครับ จะมีโพสต์ข่าวสารที่เกี่ยวข้องกับ xenForo & vBulletin และเกี่ยวข้องกันเช่น โฮส เวบไซต์ ซ๊อฟแวร์ ฯลฯ แอดมิน ...


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

admin

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

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

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

options-permalink.png

โดยปรกติแล้ว 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
HTML:
<?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”

ดังนี้
HTML:
<?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

เพิ่ม โค๊ด
PHP:
$_SERVER[‘REQUEST_URI’] = isset($_GET[‘requesturi’]) ? $_GET[‘requesturi’] : ‘/’;
เข้าไปหลัง <?php

ตามตัวอย่าง
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 แล้ว

credit
 


Top Bottom