ทำ Mod Rewrite ไม่ได้ครับ url ยังเป็นเหมือนเดิม

เริ่มโดย mmc01, 03 สิงหาคม 2017, 21:12:34

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

mmc01

เว็บผมมี url ประมาณนี้ครับ

ชื่อเว็บ.com/productDetail.php?pdId=87&key=สินค้า 

ทางเว็บโฮสต์ที่เช่าอยู่เค้าบอกว่าได้เปิดฟังก์ชั่น Mod Rewrite ใน httpd ให้แล้วครับ ผมโหลดไฟล์ .htaccess มาแก้เป็นแบบนี้ครับโดยเพิ่ม 2 บรรทัดล่างสุดเข้าไป

#First rewrite any request to the wrong domain to use the correct one (here www.)
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ [url]https://www.%{HTTP_HOST}%{REQUEST_URI}[/url] [L,R=301]

#Now, rewrite to HTTPS:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ [url]https://%{HTTP_HOST}%{REQUEST_URI}[/url] [L,R=301]

RewriteEngine On
RewriteRule ^(.*)/(.*)/$ /productDetail.php?pdId=$1&key=$2


พออัพโหลดเข้า ftp แล้วกดปุ่ม refresh หน้าเว็บแล้วเอาเมาส์ชี้ link ที่ href มันแสดง url เป็นแบบเดิมอยู่เลยครับไม่เปลี่ยน ผมจึงลองแก้ url เป็นแบบนี้ครับ

https://www.ชื่อเว็บ.com/87/สินค้า

แต่พอเปิดแล้วมัน error แบบน้ีครับ

Not Found
The requested URL /87/%E0%B9%82  .. was not found on this server.


ส่วนเว็บที่มี url เป็น

https://www.ชื่อเว็บ.com/admin/order/

มันเข้าเว็บไม่ได้ต้องใส่ชื่อไฟล์ index.php ด้วย เช่น https://www.ชื่อเว็บ.com/admin/order/index.php

ผมทำผิดขั้นตอนหรือเปล่าครับต้องทำยังไงบ้าง
 *Link Removed*

chaynuwong

แนะนำทำตาม ตัวอย่างในเว็บที่ มีตัวอย่างครับ ไล่ไป ทีละ ส่วน
แรกๆ ลองทำตามตัวอย่างก่อนครับ  ส่วนนี้ ค่อนข้างซับซ้อนมาก มันสัมพันตั้งแต่การสร้างลิ้งด้วย
ต้องทำขึ้นโฮส อย่างเดียวเพื่อเช็ค ความคิดเห็นส่วนตัวน่ะครับ

pm  ส่วนตัวมาถามน่ะคับ ผมอธิบายไม่เป็นแต่ก็พยามจนทำได้เหมือนกัน

iCeEffecT

#2
ถ้า host เป็น apache ต้องไปตั้งค่าเพิ่มด้วยครับ ไม่แน่ใจว่า hosting ของท่านทำให้หรือยังครับตามนี้ครับ
https://askubuntu.com/questions/421233/enabling-htaccess-file-to-rewrite-path-not-working

hmc2017


http://www.generateit.net/mod-rewrite/index.php


เว็บนี้เว็บเดียว กระจ่างได้ครับ ผมใช้อยู่

:wanwan017: :wanwan003:
รับออกแบบป้ายโฆษณาสินค้า
ทำป้ายแบนเนอร์ ป้ายตารางแข่งขันฟุตบอลลีกต่างๆ
ดูแลแฟนเพจรายเดือน มีทีมงาน Support ตรงเวลา
รับตัดต่อวีดีโอ  เพื่อใช้ในการโปรโมทสินค้า
** มัดจำงานเริ่มต้นที่ 0-20% ***
Email : pmaster.engl[at]gmail.com

chaynuwong

อันนี้ผมใช้อยู่ครับ ไม่เก่งเท่าไหร่ อาศัยขี้เดาจนได้
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/$ /index.php?page=$1 [L]  <--1.1 คือ ลิ้งที่ใส่ในหน้าเว็บคือ สมมุติ  <a href="test.com/สินค้า/">สินค้า</a>  หมายความว่า  ตอนนี้ ก็คือ $_GET['page'] = 'สินค้า' ; 
RewriteRule ^([^/]*)/([0-9]*)/$ /index.php?page=$1&s_page=$2 [L] <--1.2 คือ สมมุติแบ่งหน้าการแสดงผล  <a href="test.com/สินค้า/2/">สินค้า</a>  หมายความว่า  ตอนนี้ ก็คือ $_GET['page'] = 'สินค้า' ; และ $_GET['s_page'] มีค่า 2 เก็บไว้
RewriteRule ^([^/]*)/([^/]*)-([^/]*).html$ /index.php?page=$1&title=$2&id=$3 [L] บรรทัดนี้น่าจะเดาออกน่ะคับ

ได้ค่ามา ก็ไปเช็ค หน้า  if($_GET['page']=='สินค้า'){include('product.php');}
ประมาณนี้ครับ