จะลบ 'index.php' ออกจาก URL ได้อย่างไร


คำตอบ:


17

คุณสามารถทำได้โดยการเปิดใช้งาน SEF URL และโดยเฉพาะอย่างยิ่งพารามิเตอร์ "ใช้การเขียน URL ใหม่" ในการกำหนดค่าส่วนกลางของ Joomla

โปรดทราบว่านี่จะสร้างข้อผิดพลาดเซิร์ฟเวอร์ภายในหากคุณไม่ได้สร้าง.htaccessไฟล์ก่อนเปิดใช้งานตัวเลือก

มีหน้าเอกสารอธิบายขั้นตอนที่จำเป็นในการรับ URL ที่ดีเหล่านั้น ดูที่นี่: http://docs.joomla.org/Enabling_Search_Engine_Friendly_(SEF)_URLs

โดยทั่วไปคุณจะต้องเปลี่ยนชื่อhtaccess.txtไฟล์ที่พบในไดเรกทอรีราก Joomla ของคุณ ขั้นตอนเพิ่มเติมจำเป็นขึ้นอยู่กับลูกไก่ของคุณ


ตกลงฉันจะลองดู มันค่อนข้างแปลกที่ Joomla ไม่ได้สร้างรหัสนั้นตอนนี้ฉันคิดเกี่ยวกับมัน ฉันคิดว่าฉันลองใช้ตัวเลือกนั้นและมันก็ผิดพลาดจริง ๆ
connersz

1
นั่นคือเหตุผลที่ทำไม Joomla ไม่สร้างรหัสเอง มันขึ้นอยู่จำนวนมากในพื้นที่และเราไม่ต้องการที่จะสมบูรณ์ทำลายเว็บไซต์ของคุณโดยการเปิดใช้งานคุณลักษณะ :)
Bakual

4

คุณสามารถเพิ่มรหัสนี้ไปด้านบนสุดของ index.php ของ Joomla:

if(strcmp($_SERVER['REQUEST_URI'], '/index.php') == 0 && $_SERVER['QUERY_STRING'] == ''){
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: /');
    exit;
}

ระวังถ้าคุณใช้วิธีนี้คุณจะต้องทำสิ่งนี้ซ้ำเมื่อคุณอัพเกรด


ฉันขอแนะนำให้คุณทำเช่นนี้เป็นแฮ็กเสริมหากการเปลี่ยนเส้นทางและการเขียนซ้ำไม่ทำงานใน htaccess ดังนั้นการถอยกลับที่ถูกต้อง
tristanbailey

ตกลง นั่นคือวิธีที่เราได้วิธีนี้ เราไม่สามารถรับการแก้ไข htaccess ให้ทำงานได้อย่างเหมาะสมทั้งไซต์
ContextSwitch

4
  1. เปลี่ยน htaccess.txt เป็น. htaccess
  2. ไซต์> การกำหนดค่าทั่วโลก: ใช้การเขียน URL ใหม่ (เลือกใช่)
  3. การตั้งค่า SEO ค้นหา URL ที่เป็นมิตรกับเครื่องยนต์ (เลือกใช่)

2

นี่เป็นวิธีการทั่วไปหากเว็บไซต์ของคุณขัดข้องโดยใช้. htaccess:

  • คุณควรแสดงความคิดเห็นหนึ่งหรือทั้งสองบรรทัด:

ตัวเลือก + FollowSymLinks

และ / หรือ

RewriteBase /

มันน่าจะใช้ได้ดี! หมายเหตุ: คุณแสดงความคิดเห็นโดยให้แฮชแท็กสำหรับบรรทัด "#"


1

หากคุณใช้เว็บเซิร์ฟเวอร์nginxคุณสามารถใช้ตัวอย่างต่อไปนี้สำหรับnginx.confไฟล์กำหนดค่าที่ Joomla ของคุณ! มีการแสดงไซต์จาก (โดยทั่วไปเพียงเพิ่ม if-condition หลังจากบรรทัดที่มีอยู่ซึ่งมีindex index.phpคำสั่งปรากฏ)

#https://stackoverflow.com/a/38165768/remove-index-php-from-joomla-urls-with-nginx
index index.php index.html index.htm;
if ($request_uri ~ "^/(.*)(?<=/)index\.php/?((?<=/).*)?$") {    return  301 /$1$2;  }

รายละเอียดเพิ่มเติมที่/programming/28997028/remove-index-php-from-joomla-urls-with-nginx/38165768#38165768

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.