Tag Archive htaccess

Byphunsanit

rewrite url ใน iis

โดยปกติ PHP จะใช้ Apache HTTP Server เป็น server ถ้าต้องการให้ URL เรียบร้อยสวยงามก็ใช้ไฟล์ .htaccess แต่ถ้าเราใช้ Internet Information Services (IIS) ก็ต้องไปใช้ไฟล์ ที่คู่กันคือ Web.Config แทน

การที่จะ rewrite url ใน iis จะต้องมีการติดตั้ง URL Rewrite extension เอาไว้ก่อน

ตัวอย่างไฟล์ Web.Config ที่ทำหน้าที่ แปลง ค่าใน url ไปให้ไฟล์ index.php โดยที่จะซ่อนไฟล์ index.php ออกจาก url

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <system.webServer>
      <rewrite>
         <rules>
            <clear />
            <rule name="remove index.php" 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" />
            </rule>
         </rules>
      </rewrite>
   </system.webServer>
</configuration>

นำไปว่างใน folder ที่ต้องการใช้เช่น folder public ของ laravel เป็นต้น

Byphunsanit

Yii2: pretty urls

โดยปกติ url ของ yii2 จะเป็นแบบ http://localhost/BanBan/1/backend/web/index.php?r=gii%2Fdefault%2Fview&id=model ซึ่งยากที่ user ทั่วไปจะจำ ทำให้ google มองว่าเว็บเราใช้งานยากจึงไม่เป็นผลดีในการทำ seo เราจึงต้องแปลง query string ให้เป็นรูปแบบ pretty urls ที่จะจำได้ง่ายและสวยงามกว่า พี่เกิ๊ลชอบ

  1. เปิดไฟล์ config\main.php จากนั้นเพิ่ม
        'components' => [
    ...
            'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
            ],
    ...
        ],
  2. จากนั้นสร้างไฟล์
    RewriteEngine on
    
    # if a directory or a file exists, use it directly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    
    # otherwise forward it to index.php
    RewriteRule . index.php

    save ไปที่ backend\web และ frontend\web

เท่านี้จาก url ยาวๆ ก็จะสวยงามขึ้นกลายเป็น http://localhost/BanBan/1/backend/web/gii/model อ่านง่ายขึ้นเยอะเลย