Score:2

Apache เขียน URL ใหม่ไม่ถูกต้องสำหรับไฟล์ symlink ที่ไม่มีอยู่

ธง ar

ฉันมีไดเร็กทอรี (ฟู/อัพโหลด) ซึ่งมี 1 ไฟล์: ไฟล์ 1.txt

ฉันได้สร้าง symlink ไปยังไดเร็กทอรีนี้ (บาร์/อัพโหลด)

นี่คือของฉัน .htaccess ไฟล์ข้างใน บาร์:

RewriteEngine เปิดอยู่
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

และนี่คือไฟล์ vhost ของฉัน:

<VirtualHost *:80>
    ServerName bar.com
    DocumentRoot /var/www/bar

    <Directory /var/www/bar>
        allow from all
        order allow,deny
        AllowOverride All
    </Directory>
</VirtualHost>

ปัญหาที่ฉันพบคือ ถ้าฉันพยายามเข้าถึงไฟล์ที่ไม่มีอยู่จริงเมื่อใช้โฟลเดอร์ที่เชื่อมโยงกัน ไฟล์นั้นจะไม่ตอบสนอง 404 นี่คือสิ่งที่ฉันหมายถึง:

  1. foo.com/uploads/file1.txt -> เสิร์ฟไฟล์ (ถูกต้อง)
  2. foo.com/uploads/file2.txt -> อาปาเช่ 404 เอกสารข้อผิดพลาด เสิร์ฟ (ถูกต้อง)
  3. bar.com/uploads/file1.txt -> เสิร์ฟไฟล์ (ถูกต้อง)
  4. bar.com/uploads/file2.txt -> ดำเนินการต่อ index.php (ไม่ถูกต้อง)

ฉันได้ลองรวมถึง:

RewriteCond %{REQUEST_FILENAME} !-l

ก่อนที่ เขียนกฎใหม่แต่นั่นไม่ได้สร้างความแตกต่าง

ใครรู้ว่าฉันต้องทำอะไร?

Score:1
ธง kz

หากคุณต้องการให้คอนโทรลเลอร์ด้านหน้าใช้เฉพาะเมื่อเข้าถึงผ่าน บาร์.คอม จากนั้นคุณสามารถตรวจสอบคำขอ เจ้าภาพ ส่วนหัวในกฎ ตัวอย่างเช่น:

RewriteCond %{HTTP_HOST} (^|\.)bar\.com [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

หรือยกเว้น /อัพโหลด ไดเรกทอรีย่อย:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^uploads/ index.php [L]

หรือรวมอย่างอื่น .htaccess ไฟล์ใน /อัพโหลด ไดเร็กทอรีย่อยที่แทนที่รูปแบบพาเรนต์ตัวควบคุมด้านหน้า คุณสามารถทำได้ง่ายๆ โดยปิดการใช้งาน (หรือ เปิดใช้งาน - ไม่ได้เปิดใช้งานการจัดเตรียมการสืบทอด mod_rewrite) เอ็นจิ้นการเขียนใหม่ในไดเร็กทอรีย่อย:

# /uploads/.htaccess
RewriteEngine ปิด

หรือปิดการใช้งาน .htaccess ลบล้างทั้งหมดและย้ายคำสั่งเหล่านี้ไปที่ <Directory /var/www/bar> คอนเทนเนอร์ภายใน บาร์.คอม วีโฮสต์

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา