ปัญหาดังกล่าวเมื่อสร้าง post หรือ page จะพบว่ากด link ไปที่หน้านั้นจะขึ้น page not fond 404 เนื่องจาก link เป็นภาษาไทย

สาเหตุเกิดจากใน windows ที่ใช้ iis เป็น web server จะมี mod rerite โดยใช้ไฟล์ web.config แทน .htaccess (บน linux จะใช้ตัวนี้) ต้องเข้าไปแก้ <action type=”Rewrite” url=”index.php?requesturi={URL}”/>  ตรง url ต้องเพิ่มจาก index.php เพิ่ม ?requesturi={URL} ลงไปดังตัวอย่างด้านล่าง

<?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>

หลังจากนั้นไปแก้ที่ไฟล์ index.php ของ wordpress เพิ่ม

$_SERVER[‘REQUEST_URI’] = isset($_GET[‘requesturi’]) ? $_GET[‘requesturi’] : ‘/’; เข้าไป ดังด้านล่าง
<?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 __DIR__ . '/wp-blog-header.php';

ก็จะแสดงผลหน้าที่มี link เป็นภาษาไทยได้อย่างถูกต้องและไม่ขึ้น error 404

กรณีที่ใช้เป็น domain ip เช่น http://xxx.xxx.xxx.xx/km จะต้องกำหนดในไฟล์ index.php ด้านหลังของ requesturi ให้ใส่ directory ให้ถูกไม่งั้นหน้าเว็บปกติของ wordpress จะเข้าไม่ได้เพราะมันจะวนลูบค้นหาเส้นทางเว็บตลอดเวลาจน error 404 สามารถแก้ตามภาพด้านล่าง

By admin

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.