วันศุกร์ที่ 2 กันยายน พ.ศ. 2559

เซ็ตหน้า 404 ของเราเองใน windows server

วิธีการ Set หน้า 404 แบบ costume หรือแบบกำหนดเอง สำหรับเว็บไซต์ที่ใช้ Host แบบ Windows ครับ วิธีง่ายๆ ตามนี้ เปิดไฟล์ web.config ขึ้นมา แล้วใส่บรรทัดตามนี้ไปครับ

<system.webServer>
    <httpErrors errorMode="Custom">
        <remove statusCode="404" />
        <error statusCode="404" path="/Error.aspx" responseMode="ExecuteURL" />
    </httpErrors>
</system.webServer>

สำหรับใครที่ยังไม่เคยสร้างไฟล์ web.config ก็สร้างได้เลยครับ แบบเต็มๆ เขียนตามนี้

<?xml version="1.0"?>
<configuration>
   <system.webServer>
      <httpErrors>
        <remove statusCode="401" subStatusCode="-1" />
        <remove statusCode="403" subStatusCode="-1" />      
        <remove statusCode="404" subStatusCode="-1" />                
        <remove statusCode="500" subStatusCode="-1" />
          <!-- full url when responsemode is Redirect -->
        <error statusCode="401" path="http://foo.com/default.htm" responseMode="Redirect" />
          <!-- local relative path when responsemode is ExecuteURL -->
        <error statusCode="403" path="/errors/403.htm" responseMode="ExecuteURL" />
        <error statusCode="404" path="/somedir/oops404.htm" responseMode="ExecuteURL" />                
        <error statusCode="500" path="/somedir/500.asp" responseMode="ExecuteURL" />
      </httpErrors>
      <modules runAllManagedModulesForAllRequests="true"/>
   </system.webServer>
</configuration>



การเขียนแบบนี้ใช้ได้กับ error ดังต่อไปนี้ครับ

  • 400 Error (bad request)
  • 401 Error (unauthorized)
  • 403 Error (forbidden)
  • 404 Error (not found)
  • 500 Error (internal server error)

ข้อสังเกต หากเราทำไฟล์ 404.html ไปไว้ใน path เดียวกับไฟล์ index นั้น อย่าลืมเติม "/" ก่อนชื่อไฟล์ด้วยนะครับเช่น
<error statusCode="404" path="/404.html" responseMode="ExecuteURL" />  

อีกอย่างนึงคือ ต้องครอบด้วย อย่าลืมนะแจ๊ะ

  • </httpErrors>
  • </system.webServer>
  • </configuration>
เพิ่มเติมกันลืม หากใครอยากจะ Redirict 301 นะครับ ทำตามนี้เลย
 <location path="newcontact.php">
    <system.webServer>
      <httpRedirect enabled="true" destination="http://www.jumnum2go.com/contactus.html" httpResponseStatus="Permanent" />
    </system.webServer>
  </location>
ในตัวอย่างนี้จะเปลี่ยนหน้า newcontact.php ในเว็บให้เป็น contactus.html ครับ