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

2
คำสั่งและลำดับความสำคัญของการดำเนินการ htaccess
ทุกคนสามารถอธิบายให้ฉันในสิ่งที่ apache สั่งรันไฟล์. htaccess อยู่ในระดับที่แตกต่างกันของเส้นทางเดียวกันและวิธีการเขียนกฎในนั้นจัดลำดับความสำคัญ? ตัวอย่างเช่นทำไมกฎการเขียนซ้ำใน. htaccess ด้านล่างไม่ทำงานและเป็นกฎที่มีการ/blogจัดลำดับความสำคัญ .htaccess ใน / RewriteEngine on RewriteBase / RewriteRule ^blog offline.html [L] .htaccess ใน /blog RewriteEngine On RewriteBase /blog/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L] PS: ฉันไม่เพียงแค่มองหาคำตอบ แต่สำหรับวิธีที่จะเข้าใจ apache / mod_rewrite internals ... ทำไมฉันถึงสำคัญกว่าวิธีการแก้ไขนี้

1
จะส่งพารามิเตอร์ GET ไปยัง URL ที่เขียนใหม่ได้อย่างไร
ฉันมี.htaccessกฎการเขียนซ้ำเช่นนี้: RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^search/(.*)$ search.php?q=$1 สิ่งนี้จะเป็นหากผู้เข้าชมคนhttp://example.com/search/testURI http://www.example.com/search.php?q=testที่ที่มีการประมวลผลจริงๆ ตอนนี้ถ้าฉันพยายามส่งพารามิเตอร์สุ่ม GET พิเศษไปยัง URL ที่เขียนใหม่ของฉันพารามิเตอร์จะถูกละเว้น ดังนั้นถ้าฉันพยายามไปที่นี่: http://www.example.com/search/whatever?extra=true พารามิเตอร์extraจะถูกละเว้น ดูเหมือนจะไม่ผ่านเลย สามารถแก้ไขปัญหานี้ได้หรือไม่? ถ้าเป็นเช่นนั้นได้อย่างไร

6
บังคับให้ SSL และ www ใน. htaccess
ฉันกำลังมองหาวิธีการบังคับ SSL wwwและ ฉันสามารถบังคับทั้งสองอย่างแยกกัน แต่ฉันก็ยังเจอกับปัญหาการเปลี่ยนเส้นทาง รหัสต่อไปนี้ใช้งานได้เมื่อจัดการ URL ในรูปแบบนี้http://example.comและเปลี่ยนเส้นทางอย่างถูกต้องhttps://www.example.comแต่เมื่อ URL ขาเข้าhttps://example.comนั้นจะไม่ถูกส่งต่อไปยังhttps://www.example.com- คำแนะนำใด ๆ แก้ไข: มันก็ควรจะส่งไปhttp://www.example.comhttps://www.example.com RewriteCond %{REMOTE_ADDR} !127\.0\.0\.0 RewriteCond %{SERVER_PORT} 80 RewriteCond %{HTTP_HOST} !^www.example\.com$ RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.