คำถามติดแท็ก mod-rewrite

โมดูลการเขียน URL ใหม่สำหรับเว็บเซิร์ฟเวอร์ Apache โดยทั่วไปจะใช้สำหรับสิ่งที่เรียกว่า URL "สวย" แต่ยังให้พลังและความยืดหยุ่นในการดำเนินการจัดการคำขอต่างๆนอกเหนือจากการแทนที่ง่ายๆ

24
htaccess ทั่วไปเปลี่ยนเส้นทาง www ไปที่ไม่ใช่ www
ผมอยากจะเปลี่ยนเส้นทางไปยังwww.example.com example.comรหัส htaccess ต่อไปนี้ทำให้สิ่งนี้เกิดขึ้น: RewriteCond %{HTTP_HOST} ^www\.example\.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301] แต่มีวิธีการทำเช่นนี้ในแบบทั่วไปโดยไม่ต้องเข้ารหัสชื่อโดเมน?

15
วิธีเปิดใช้งาน mod_rewrite สำหรับ Apache 2.2
ฉันได้ติดตั้ง Apache 2.2 ใหม่บนเครื่อง Vista ของฉันทุกอย่างทำงานได้ดียกเว้น mod rewrite ฉันไม่แสดงความคิดเห็น LoadModule rewrite_module modules/mod_rewrite.s แต่ไม่มีกฎการเขียนซ้ำของฉันอีกเลยแม้แต่กฎง่ายๆ RewriteRule not_found %{DOCUMENT_ROOT}/index.php?page=404 กฎทั้งหมดที่ฉันใช้กำลังทำงานกับโฮสติ้งของฉันดังนั้นพวกเขาควรจะโอเคดังนั้นคำถามของฉันคือมีสิ่งใดที่ซ่อนอยู่ในการกำหนดค่า apache ที่สามารถบล็อกการเขียนใหม่ mod หรือไม่

14
htaccess เปลี่ยนเส้นทางไปที่ https: // www
ฉันมีรหัส htaccess ต่อไปนี้: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond !{HTTPS} off RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule> ฉันต้องการให้มีการเปลี่ยนเส้นทางเว็บไซต์ของฉันhttps://www.ด้วย HTTPS และบังคับใช้www.โดเมนย่อย แต่เมื่อฉันเข้าถึงhttp://www.(โดยไม่มี HTTPS) จะไม่เปลี่ยนเส้นทางฉันไปที่https://wwwHTTPS

16
เคล็ดลับสำหรับการดีบัก. htaccess เขียนกฎใหม่
ผู้โพสต์หลายคนมีปัญหาในการดีบักคำสั่ง RewriteRule และ RewriteCond ภายใน.htaccessไฟล์ สิ่งเหล่านี้ส่วนใหญ่ใช้บริการโฮสติ้งที่ใช้ร่วมกันดังนั้นจึงไม่มีสิทธิ์เข้าถึงการกำหนดค่าเซิร์ฟเวอร์รูท พวกเขาไม่สามารถหลีกเลี่ยงการใช้.htaccessไฟล์สำหรับการเขียนใหม่และไม่สามารถเปิดใช้ RewriteLogLevel "ตามที่ผู้ตอบแบบสอบถามแนะนำจำนวนมากนอกจากนี้ยังมี.htaccessข้อผิดพลาดและข้อ จำกัด เฉพาะหลายประการที่ไม่ครอบคลุมเช่นกัน . ดังนั้น Q ของฉันที่นี่คือวิธีที่เราอยากจะแนะนำให้พวกเขาแก้ปัญหากฎของตัวเอง ฉันให้คำแนะนำด้านล่าง ข้อเสนอแนะอื่น ๆ จะได้รับการชื่นชม เข้าใจว่าเอ็นจิ้น mod_rewrite วนไปตาม.htaccessไฟล์ต่างๆ เครื่องยนต์รันลูปนี้: do execute server and vhost rewrites (in the Apache Virtual Host Config) find the lowest "Per Dir" .htaccess file on the file path with rewrites enabled if …

19
.htaccess เขียนซ้ำเพื่อเปลี่ยนเส้นทาง URL รากไปยังไดเรกทอรีย่อย
พยายามที่จะรับ www.example.com เพื่อไปที่ www.example.com/store ฉันลองใช้รหัสหลายบิตแล้ว แต่ก็ไม่ทำงานเลย สิ่งที่ฉันได้ลอง: Options +FollowSymlinks RewriteEngine on RewriteCond %{HTTP_HOST} ^example.com$ RewriteRule (.*) http://www.example.com/$1 [R=301,L] RewriteCond %{HTTP_HOST} ^(.+)\www.example\.com$ RewriteRule ^/(.*)$ /samle/%1/$1 [L] ผมทำอะไรผิดหรือเปล่า?


8
RewriteBase ทำงานใน. htaccess อย่างไร
ฉันได้เห็นสิ่งนี้ใน.htaccessตัวอย่างเล็ก ๆ น้อยๆ RewriteBase / ดูเหมือนว่าจะค่อนข้างคล้ายกับฟังก์ชันการทำงาน<base href="">ของ HTML ฉันเชื่อว่ามันอาจเพิ่มมูลค่าของมันโดยอัตโนมัติไปยังจุดเริ่มต้นของRewriteRuleข้อความ (อาจเป็นไปได้โดยไม่มีเครื่องหมายทับ) ฉันไม่สามารถทำงานได้อย่างถูกต้อง ฉันคิดว่าการใช้งานอาจมีประโยชน์มากสำหรับการพกพาไซต์เนื่องจากฉันมักจะมีเซิร์ฟเวอร์สำหรับการพัฒนาซึ่งแตกต่างจากเซิร์ฟเวอร์ที่ใช้งานจริง วิธีการปัจจุบันของฉันทำให้ฉันลบบางส่วนออกจากRewriteRuleงบของฉัน ทุกคนสามารถอธิบายให้ฉันรู้วิธีนำไปใช้อย่างย่อได้หรือไม่ ขอบคุณ

18
.htaccess เปลี่ยนเส้นทางหน้าทั้งหมดไปยังโดเมนใหม่
ซึ่งกฎการเปลี่ยนเส้นทางฉันจะใช้ในการเปลี่ยนเส้นทางหน้าเว็บทั้งหมดภายใต้olddomain.exampleการถูกเปลี่ยนเส้นทางไปnewdomain.example? เว็บไซต์ที่มีโครงสร้างที่แตกต่างกันโดยสิ้นเชิงดังนั้นฉันต้องการทุกหน้าภายใต้โดเมนเก่าที่จะถูกนำไปยังโดเมนใหม่หน้าดัชนี ฉันคิดว่าสิ่งนี้จะทำ (ภายใต้ไดเรกทอรีฐาน olddomain.example): RewriteEngine On RewriteRule ^(.*)$ http://newdomain.example/ [R=301] แต่ถ้าผมนำทางไปยังที่ฉันได้รับการเปลี่ยนเส้นทางไปยังolddomain.example/somepage newdomain.example/somepageฉันคาดหวังว่าจะเปลี่ยนเส้นทางไปที่newdomain.exampleโดยไม่มีคำต่อท้ายหน้า ฉันจะแยกส่วนสุดท้ายออกได้อย่างไร

23
apache เปลี่ยนเส้นทางจากไม่ใช่ www เป็น www
ฉันมีเว็บไซต์ที่ดูเหมือนจะไม่เปลี่ยนเส้นทางจากที่ไม่ใช่ www ไปยัง www การกำหนดค่า Apache ของฉันเป็นดังนี้: RewriteEngine On ### re-direct to www RewriteCond %{http_host} !^www.example.com [nc] RewriteRule ^(.*)$ http://www.example.com/$1 [r=301,nc] ฉันกำลังคิดถึงอะไร

5
วิธีการดีบัก Apache mod_rewrite
ฉันมีสองปัญหาหลักกับ mod_rewrite: 1) ไม่มีการรายงานข้อผิดพลาดที่มีความหมายเมื่อฉันมีกฎที่ไม่ถูกต้อง 2) ในการทดสอบการดัดแปลงแต่ละครั้งอย่างน่าเชื่อถือฉันต้องลบแคชของ Chrome นี่ไม่ใช่วิทยาศาสตร์จรวด แต่ฉันต้องกด Ctrl + Shift + Delete แล้วคลิกตกลงจากนั้นปิดหน้าต่างแล้วโหลดซ้ำ ฉันต้องการดูว่าผู้เชี่ยวชาญที่มีความเต็มใจที่จะแบ่งปันความลับของพวกเขาเพื่อการจัดการโค้ด mod_rewrite อย่างมีประสิทธิภาพหรือไม่

15
จะตรวจสอบว่า mod_rewrite เปิดใช้งานใน php ได้อย่างไร?
ผมสงสัยว่าถ้ามันเป็นไปได้เพื่อตรวจสอบว่าmod_rewriteมีการเปิดใช้งานบนApacheและIISPHPใน ModRewriteสำหรับ IIS มีอยู่ hereตรวจสอบ ดังนั้นฉันกำลังมองหาสคริปต์ PHP ที่ตรวจสอบmod_rewriteในApacheและIIS ไม่มีใครรู้สคริปต์ดังกล่าวหรือสามารถเขียนได้หรือไม่ โดยเฉพาะอย่างยิ่งสำหรับ Microsoft IIS ขอบคุณ!
149 php  apache  mod-rewrite  iis 

6
.htaccess mod_rewrite - วิธีแยกไดเรกทอรีออกจากกฎการเขียนซ้ำ
ฉันมีกฎการเขียนใหม่ 8 บรรทัดในไฟล์. htaccess ของฉัน ฉันต้องยกเว้นไดเรกทอรีทางกายภาพสองไดเรกทอรีบนเซิร์ฟเวอร์ของฉันจากกฎเหล่านี้เพื่อให้สามารถเข้าถึงได้ ตอนนี้คำขอทั้งหมดจะถูกส่งไปยังไฟล์ index.php ไดเรกทอรีที่จะยกเว้น: "ผู้ดูแลระบบ" และ "ผู้ใช้" ดังนั้นคำขอ http: http://www.domain.com/admin/ไม่ควรส่งผ่านไปยังไฟล์ index.php ErrorDocument 404 /index.php?mod=error404 Options FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L] RewriteRule ^([^/] )/([^/] )\.html$ index.php?lang=$1&mod=$2 [L] RewriteRule ^([^/] )/$ index.php?lang=$1&mod=home [L]

4
การอ้างอิง: mod_rewrite, การเขียน URL ใหม่และอธิบาย "ลิงก์สวย"
"ลิงค์สวย" เป็นหัวข้อที่มักได้รับการร้องขอ แต่ไม่ค่อยได้รับการอธิบายอย่างสมบูรณ์ mod_rewriteเป็นวิธีหนึ่งในการทำ "ลิงค์สวย" แต่มันซับซ้อนและไวยากรณ์ของมันสั้นมากยากที่จะ grok และเอกสารประกอบถือว่าระดับความชำนาญใน HTTP ในระดับหนึ่ง บางคนสามารถอธิบายด้วยคำง่ายๆว่า "ลิงก์สวย ๆ " ทำงานอย่างไรและ mod_rewrite สามารถนำมาใช้สร้างได้อย่างไร ชื่อสามัญอื่น ๆ , นามแฝง, เงื่อนไขสำหรับ URL ที่สะอาด: URL ที่สงบ , URL ที่ใช้งานง่าย, SEO - URL ที่เป็นมิตร, การบีบและ URL MVC (อาจเป็นชื่อที่ใช้ผิด)

5
การเขียน URL ใหม่ด้วย PHP
ฉันมี URL ที่มีลักษณะดังนี้: url.com/picture.php?id=51 ฉันจะแปลง URL นั้นเป็นอย่างไร: picture.php/Some-text-goes-here/51 ฉันคิดว่า WordPress ทำเช่นเดียวกัน ฉันจะสร้าง URL ที่จำง่ายใน PHP ได้อย่างไร

8
ปฏิเสธการเข้าถึงโฟลเดอร์และไฟล์โดยตรงโดย htaccess
นี่คือสถานการณ์: มีindex.phpไฟล์อยู่ในโฟลเดอร์รูท ไฟล์บางไฟล์จะรวมindex.phpอยู่ในincludesโฟลเดอร์ อีก 1 ไฟล์ ( submit.php) อยู่ในโฟลเดอร์รูทสำหรับการดำเนินการส่งแบบฟอร์ม ฉันต้องการ จำกัด การเข้าถึงของผู้ใช้โดยตรงไปยังไฟล์ในincludesโฟลเดอร์โดย htaccess สำหรับsubmit.php. แต่รวมจะใช้ได้กับindex.phpไฟล์ เช่นเดียวกับหากผู้ใช้พิมพ์www.domain.com/includes/somepage.phpก็จะ จำกัด (อาจถูกเปลี่ยนเส้นทางไปยังหน้าแสดงข้อผิดพลาด)

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