Score:1

กฎการเขียนซ้ำ htaccess ไม่ทำงานกับนามสกุลไฟล์

ธง de

ฉันมีการตั้งค่าสองโดเมนในโฟลเดอร์เดียวกันบนเซิร์ฟเวอร์

เช่น.

dl.d123.com @ /var/www/public_html/dl.domain123.com
dl.domain123.com @ /var/www/public_html/dl.domain123.com

ฉันมีไฟล์ htaccess ใน /var/www/public_html/domain123.com โดยมีบรรทัดต่อไปนี้:

RewriteEngine เปิดอยู่
#เขียน URL ใหม่ไปยังโดเมน SSL เดียว
RewriteCond %{HTTP_HOST} ^dl\.d123\.com [NC]
RewriteRule ^(.*)$ https://dl.domain123.com/$1 [L,R=301,NC]

กฎนี้ใช้ได้ดีกับ URL ใดๆ ที่ไม่มีนามสกุลไฟล์

dl.d123.com/folder1/folder2 เปลี่ยนเส้นทางไปที่ dl.domain123.com/folder1/folder2

แต่ไม่ทำงานกับ URL ใด ๆ ที่มีนามสกุลไฟล์

dl.d123.com/folder1/folder2/index.html ยังคงเหมือนเดิม

ไม่ใช่แค่นามสกุล html สิ่งเดียวกันกับเช่นไฟล์ png

เซิร์ฟเวอร์ถูกตั้งค่าด้วย nginx เป็นพร็อกซี nginx:80/443 -> apache:8080/8443

แก้ไข: (ชื่อโดเมนและ IP เปลี่ยนไปเพื่อความเป็นส่วนตัว/ความปลอดภัย) การกำหนดค่า Nginx :80

เซิร์ฟเวอร์ {
    ฟัง 123.123.123.123:80;  
    server_name dl.domain123.org www.dl.domain123.org;

    access_log /usr/local/apache/domlogs/dl.domain123.org.bytes ไบต์;
    access_log /usr/local/apache/domlogs/dl.domain123.org.log เต็ม;
    error_log /usr/local/apache/domlogs/dl.domain123.org.error.log ข้อผิดพลาด;

    ที่ตั้ง / {
        ตำแหน่ง ~.*\.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|html|htm|txt |js|css|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|woff|ttf|svg|eot|sh|webp)$ {
            รูท /home/s4h/dl.domain123.org;                    
            หมดอายุสูงสุด
            try_files $uri $uri/ @แบ็คเอนด์;
        }
        
        error_page 405 = @แบ็กเอนด์;
        error_page 500 = @กำหนดเอง;
        add_header X-Cache "HIT จากแบ็กเอนด์";
        add_header X-XSS-Protection "1; mode=block" เสมอ;
        add_header X-Content-Type-Options "nosniff" เสมอ;
        proxy_pass http://123.123.123.123:8181;
        รวม proxy.inc;
    }

    ตำแหน่ง @แบ็กเอนด์ {
        ภายใน;
        proxy_pass http://123.123.123.123:8181;
        รวม proxy.inc;
    }

    ตำแหน่ง @กำหนดเอง {
        ภายใน;
        proxy_pass http://123.123.123.123:8181;
        รวม proxy.inc;
    }

    ตำแหน่ง ~ .*\.(php|jsp|cgi|pl|py)?$ {
        proxy_pass http://123.123.123.123:8181;
        รวม proxy.inc;
    }

    ตำแหน่ง ~ /\.ht {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~ /\.svn/ {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~ /\.git/ {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~ /\.hg/ {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~ /\.bzr/ {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~\.(ini|log|conf)$ {deny all;error_page 403 =404 / ;}

    enable_symlinks if_not_owner จาก=/home/s4h/dl.domain123.org;

    ที่ตั้ง /.well-known/acme-challenge {
        default_type "ข้อความ/ธรรมดา";
        นามแฝง /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }

    สถานที่ /.well-known/pki-ตรวจสอบ {
        default_type "ข้อความ/ธรรมดา";
        นามแฝง /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }
}

การกำหนดค่า Nginx:443

เซิร์ฟเวอร์ {
    ฟัง 123.123.123.123:443 ssl ;
    server_name dl.domain123.org www.dl.domain123.org;
    
    access_log /usr/local/apache/domlogs/dl.domain123.org.bytes ไบต์;
    access_log /usr/local/apache/domlogs/dl.domain123.org.log เต็ม;
    error_log /usr/local/apache/domlogs/dl.domain123.org.error.log ข้อผิดพลาด;

    ssl_certificate /etc/pki/tls/certs/dl.domain123.org.bundle;
    ssl_certificate_key /etc/pki/tls/private/dl.domain123.org.key;
    ssl_protocols TLSv1.2;
    ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH+aRSA!RC4:EECDH:!RC4:!aNULL :!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
    เปิด ssl_prefer_server_ciphers;

    ssl_session_cache ที่ใช้ร่วมกัน: SSL:10m;
    ssl_session_timeout 60m;

    ที่ตั้ง / {
        ตำแหน่ง ~.*\.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|html|htm|txt |js|css|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|woff|ttf|svg|eot|sh|webp)$ {
            รูท /home/s4h/dl.domain123.org;
            หมดอายุสูงสุด
            try_files $uri $uri/ @แบ็คเอนด์;
        }
        
        error_page 405 = @แบ็กเอนด์;
        error_page 500 = @กำหนดเอง;
        add_header X-Cache "HIT จากแบ็กเอนด์";
        add_header การขนส่งที่เข้มงวด - ความปลอดภัย "อายุสูงสุด = 31536000";
        add_header X-XSS-Protection "1; mode=block" เสมอ;
        add_header X-Content-Type-Options "nosniff" เสมอ;
        proxy_pass http://123.123.123.123:8181;
        รวม proxy.inc;
    }

    ตำแหน่ง @แบ็กเอนด์ {
        ภายใน;
        proxy_pass http://123.123.123.123:8181;
        รวม proxy.inc;
    }

    ตำแหน่ง @กำหนดเอง {
        ภายใน;
        proxy_pass http://123.123.123.123:8181;
        รวม proxy.inc;
    }

    ตำแหน่ง ~ .*\.(php|jsp|cgi|pl|py)?$ {
        proxy_pass http://123.123.123.123:8181;
        รวม proxy.inc;
    }

    ตำแหน่ง ~ /\.ht {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~ /\.svn/ {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~ /\.git/ {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~ /\.hg/ {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~ /\.bzr/ {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~\.(ini|log|conf)$ {deny all;error_page 403 =404 / ;}

    enable_symlinks if_not_owner จาก=/home/s4h/dl.domain123.org;

    ที่ตั้ง /.well-known/acme-challenge {
        default_type "ข้อความ/ธรรมดา";
        นามแฝง /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }

    สถานที่ /.well-known/pki-ตรวจสอบ {
        default_type "ข้อความ/ธรรมดา";
        นามแฝง /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }
}

dl.d123.com Nginx เฉพาะพอร์ต 80 ไม่ได้ติดตั้ง SSL

เซิร์ฟเวอร์ {
    ฟัง 123.123.123.123:80;  
    server_name dl.d123.com www.dl.d123.com;

    access_log /usr/local/apache/domlogs/dl.d123.com.bytes ไบต์;
    access_log /usr/local/apache/domlogs/dl.d123.com.log เต็ม;
    error_log /usr/local/apache/domlogs/dl.d123.com.error.log ข้อผิดพลาด;

    ที่ตั้ง / {
        ตำแหน่ง ~.*\.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|html|htm|txt |js|css|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|woff|ttf|svg|eot|sh|webp)$ {
            รูท /home/s4h/dl.domain123.com;                    
            หมดอายุสูงสุด
            try_files $uri $uri/ @แบ็คเอนด์;
        }
        
        error_page 405 = @แบ็กเอนด์;
        error_page 500 = @กำหนดเอง;
        add_header X-Cache "HIT จากแบ็กเอนด์";
        add_header X-XSS-Protection "1; mode=block" เสมอ;
        add_header X-Content-Type-Options "nosniff" เสมอ;
        proxy_pass http://123.123.123.123:8181;
        รวม proxy.inc;
    }

    ตำแหน่ง @แบ็กเอนด์ {
        ภายใน;
        proxy_pass http://123.123.123.123:8181;
        รวม proxy.inc;
    }

    ตำแหน่ง @กำหนดเอง {
        ภายใน;
        proxy_pass http://123.123.123.123:8181;
        รวม proxy.inc;
    }

    ตำแหน่ง ~ .*\.(php|jsp|cgi|pl|py)?$ {
        proxy_pass http://123.123.123.123:8181;
        รวม proxy.inc;
    }

    ตำแหน่ง ~ /\.ht {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~ /\.svn/ {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~ /\.git/ {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~ /\.hg/ {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~ /\.bzr/ {ปฏิเสธทั้งหมด;}
    ตำแหน่ง ~\.(ini|log|conf)$ {deny all;error_page 403 =404 / ;}

    enable_symlinks if_not_owner จาก=/home/s4h/dl.domain123.com;

    ที่ตั้ง /.well-known/acme-challenge {
        default_type "ข้อความ/ธรรมดา";
        นามแฝง /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }

    สถานที่ /.well-known/pki-ตรวจสอบ {
        default_type "ข้อความ/ธรรมดา";
        นามแฝง /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }
}
us flag
โปรดเพิ่มการกำหนดค่า nginx ของคุณจากคำสั่ง `nginx -T` ไปยังคำถาม
iraqiboy90 avatar
de flag
@TeroKilkanen เพิ่งเพิ่มไฟล์ nginx vhosts
us flag
บล็อกสำหรับ `dl.d123.com` หายไป โปรดรวมการกำหนดค่าด้วย
iraqiboy90 avatar
de flag
@TeroKilkanen สวัสดีอีกครั้ง เพิ่งเพิ่มตอนนี้
Score:2
ธง us

เหตุผลคือบล็อกต่อไปนี้ในการกำหนดค่า nginx:

ตำแหน่ง ~.*\.(3gp|gif|jpg|jpeg|png|ico|wmv|avi|asf|asx|mpg|mpeg|mp4|pls|mp3|mid|wav|swf|flv|html|htm|txt |js|css|exe|zip|tar|rar|gz|tgz|bz2|uha|7z|doc|docx|xls|xlsx|pdf|iso|woff|ttf|svg|eot|sh|webp)$ {
    รูท /home/s4h/dl.domain123.org;
    หมดอายุสูงสุด
    try_files $uri $uri/ @แบ็คเอนด์;
}

สิ่งนี้บอกให้ nginx ให้บริการไฟล์โดยตรงด้วยนามสกุลที่กล่าวถึง หมายเหตุ รายการมี .html และ .png ส่วนขยาย

คุณควรทำการเปลี่ยนเส้นทางภายใน nginx:

เซิร์ฟเวอร์ {
    ฟัง 123.123.123.123:80;  
    server_name dl.d123.com www.dl.d123.com;

    access_log /usr/local/apache/domlogs/dl.d123.com.bytes ไบต์;
    access_log /usr/local/apache/domlogs/dl.d123.com.log เต็ม;
    error_log /usr/local/apache/domlogs/dl.d123.com.error.log ข้อผิดพลาด;

    ที่ตั้ง / {
        ส่งคืน 301 https://www.dl.domain123.org$request_uri;
    }
}
iraqiboy90 avatar
de flag
สิ่งนี้จะหยุดความสามารถของ nginx ในการแสดงเนื้อหาที่แคชไว้หรือไม่ หรือไฟล์ conf nginx vhost สำหรับ dl.domain123.com จะเข้าควบคุมและให้บริการแคชแทน ปัญหาอื่นคือไฟล์ vhost ถูกเขียนทับโดยแผงการโฮสต์ ดังนั้นฉันสามารถป้อนกฎนี้ลงในไฟล์แยกต่างหากเพื่อไม่ให้ถูกเขียนทับได้หรือไม่ จะใช้งานได้หรือ nginx จะมีไฟล์ vhost สองไฟล์ที่จะขัดแย้งกัน?
us flag
URL ทั้งหมดสำหรับโฮสต์เสมือนนี้จะถูกเปลี่ยนเส้นทาง 301 ไปยัง `www.dl.domain123.org` และการกำหนดค่าของโฮสต์เสมือนนั้นจะนำไปใช้กับคำขอสำหรับโฮสต์เสมือนนั้น ดังนั้นสิ่งนี้จึงไม่มีผลกับการแสดงภาพ `www.dl.domain123.org` คุณต้องถามผู้ให้บริการโฮสติ้งพาเนลว่าจะจัดการเรื่องนี้อย่างไร แผงการโฮสต์ทำให้ระบบทำงานในลักษณะที่ไม่ได้มาตรฐาน และเราไม่สามารถทราบได้ว่าแผงเหล่านี้ทำงานอย่างไร
iraqiboy90 avatar
de flag
ขอบคุณสำหรับความช่วยเหลือ ฉันจะดูว่าฉันจะใช้การกำหนดค่านี้ได้อย่างไรโดยไม่ต้องเขียนทับแผงในภายหลัง
iraqiboy90 avatar
de flag
ฉันคิดหาวิธีที่จะนำไปใช้ แผงการโฮสต์มีตัวเลือกในการเปลี่ยนการตั้งค่าเว็บเซิร์ฟเวอร์สำหรับโดเมนที่เลือก ฉันมีผู้ใช้หนึ่งรายที่มี 15 โดเมน เขียนใหม่ทั้งหมดเป็น domain123.orgดังนั้น แทนที่จะเป็นโดเมนทั้งหมดรวมถึงโดเมนผู้ใช้อื่นที่มีการกำหนดค่า "nginx -> apache" เหมือนกันด้วยเทมเพลต vhost เดียวกัน ฉันเพิ่งเปลี่ยน 15 โดเมนเหล่านี้เป็น "nginx เท่านั้น" (ซึ่งมีไดเร็กทอรีเทมเพลต vhost ของตัวเอง) และสามารถใช้ เทมเพลต vhost แบบกำหนดเองที่ใช้บรรทัด "return 301" กับทั้งหมดและเก็บโดเมน server_name ด้วยตัวแปร %domain% ฉันไม่ต้องการกฎ htaccess อีกต่อไป

โพสต์คำตอบ

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