Điểm:1

quy tắc viết lại htaccess không hoạt động với phần mở rộng tệp

lá cờ de

Tôi đã thiết lập hai miền trên cùng một thư mục trên máy chủ.

I E.

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

Tôi có tệp htaccess trong /var/www/public_html/domain123.com với các dòng sau:

Viết LạiEngine Trên
# Viết lại URL vào một miền SSL
RewriteCond %{HTTP_HOST} ^dl\.d123\.com [NC]
RewriteRule ^(.*)$ https://dl.domain123.com/$1 [L,R=301,NC]

Quy tắc này hoạt động tốt với bất kỳ URL nào không chứa phần mở rộng tệp

dl.d123.com/folder1/folder2 chuyển hướng đến dl.domain123.com/folder1/folder2

nhưng không hoạt động với bất kỳ URL nào chứa phần mở rộng tệp

dl.d123.com/folder1/folder2/index.html vẫn giữ nguyên.

Nó không chỉ là phần mở rộng html. Điều tương tự với các tệp i.e. png.

Máy chủ được thiết lập với nginx làm proxy. nginx:80/443 -> apache:8080/8443

CHỈNH SỬA: (Tên miền và IP đã thay đổi để đảm bảo quyền riêng tư/bảo mật) Cấu hình Nginx :80

người phục vụ {
    nghe 123.123.123.123:80;  
    server_name dl.domain123.org www.dl.domain123.org;

    access_log /usr/local/apache/domlogs/dl.domain123.org.bytes byte;
    access_log /usr/local/apache/domlogs/dl.domain123.org.log đầy đủ;
    error_log /usr/local/apache/domlogs/dl.domain123.org.error.log lỗi;

    địa điểm / {
        vị trí ~.*\.(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)$ {
            gốc /home/s4h/dl.domain123.org;                    
            hết hạn tối đa;
            try_files $uri $uri/ @backend;
        }
        
        error_page 405 = @backend;
        error_page 500 = @custom;
        add_header X-Cache "HIT từ phụ trợ";
        add_header X-XSS-Protection "1; mode=block" luôn luôn;
        add_header X-Content-Type-Options "nosniff" luôn;
        proxy_pass http://123.123.123.123:8181;
        bao gồm proxy.inc;
    }

    vị trí @backend {
        nội bộ;
        proxy_pass http://123.123.123.123:8181;
        bao gồm proxy.inc;
    }

    vị trí @custom {
        nội bộ;
        proxy_pass http://123.123.123.123:8181;
        bao gồm proxy.inc;
    }

    vị trí ~ .*\.(php|jsp|cgi|pl|py)?$ {
        proxy_pass http://123.123.123.123:8181;
        bao gồm proxy.inc;
    }

    vị trí ~ /\.ht {từ chối tất cả;}
    vị trí ~ /\.svn/ {từ chối tất cả;}
    vị trí ~ /\.git/ {từ chối tất cả;}
    vị trí ~ /\.hg/ {từ chối tất cả;}
    vị trí ~ /\.bzr/ {từ chối tất cả;}
    vị trí ~\.(ini|log|conf)$ {từ chối tất cả;error_page 403 =404 / ;}

    disable_symlinks if_not_owner from=/home/s4h/dl.domain123.org;

    vị trí /.well-known/acme-challenge {
        default_type "text/plain";
        bí danh /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }

    vị trí /.well-known/pki-validation {
        default_type "text/plain";
        bí danh /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }
}

Cấu hình Nginx:443

người phục vụ {
    nghe 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 byte;
    access_log /usr/local/apache/domlogs/dl.domain123.org.log đầy đủ;
    error_log /usr/local/apache/domlogs/dl.domain123.org.error.log lỗi;

    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;
    bật ssl_prefer_server_ciphers;

    ssl_session_cache được chia sẻ:SSL:10m;
    ssl_session_timeout 60m;

    địa điểm / {
        vị trí ~.*\.(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)$ {
            gốc /home/s4h/dl.domain123.org;
            hết hạn tối đa;
            try_files $uri $uri/ @backend;
        }
        
        error_page 405 = @backend;
        error_page 500 = @custom;
        add_header X-Cache "HIT từ phụ trợ";
        add_header Strict-Transport-Security "max-age=31536000";
        add_header X-XSS-Protection "1; mode=block" luôn luôn;
        add_header X-Content-Type-Options "nosniff" luôn;
        proxy_pass http://123.123.123.123:8181;
        bao gồm proxy.inc;
    }

    vị trí @backend {
        nội bộ;
        proxy_pass http://123.123.123.123:8181;
        bao gồm proxy.inc;
    }

    vị trí @custom {
        nội bộ;
        proxy_pass http://123.123.123.123:8181;
        bao gồm proxy.inc;
    }

    vị trí ~ .*\.(php|jsp|cgi|pl|py)?$ {
        proxy_pass http://123.123.123.123:8181;
        bao gồm proxy.inc;
    }

    vị trí ~ /\.ht {từ chối tất cả;}
    vị trí ~ /\.svn/ {từ chối tất cả;}
    vị trí ~ /\.git/ {từ chối tất cả;}
    vị trí ~ /\.hg/ {từ chối tất cả;}
    vị trí ~ /\.bzr/ {từ chối tất cả;}
    vị trí ~\.(ini|log|conf)$ {từ chối tất cả;error_page 403 =404 / ;}

    disable_symlinks if_not_owner from=/home/s4h/dl.domain123.org;

    vị trí /.well-known/acme-challenge {
        default_type "text/plain";
        bí danh /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }

    vị trí /.well-known/pki-validation {
        default_type "text/plain";
        bí danh /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }
}

dl.d123.com Nginx, Chỉ cổng 80,, không cài đặt SSL.

người phục vụ {
    nghe 123.123.123.123:80;  
    server_name dl.d123.com www.dl.d123.com;

    access_log /usr/local/apache/domlogs/dl.d123.com.bytes byte;
    access_log /usr/local/apache/domlogs/dl.d123.com.log đầy đủ;
    error_log /usr/local/apache/domlogs/dl.d123.com.error.log lỗi;

    địa điểm / {
        vị trí ~.*\.(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)$ {
            gốc /home/s4h/dl.domain123.com;                    
            hết hạn tối đa;
            try_files $uri $uri/ @backend;
        }
        
        error_page 405 = @backend;
        error_page 500 = @custom;
        add_header X-Cache "HIT từ phụ trợ";
        add_header X-XSS-Protection "1; mode=block" luôn luôn;
        add_header X-Content-Type-Options "nosniff" luôn;
        proxy_pass http://123.123.123.123:8181;
        bao gồm proxy.inc;
    }

    vị trí @backend {
        nội bộ;
        proxy_pass http://123.123.123.123:8181;
        bao gồm proxy.inc;
    }

    vị trí @custom {
        nội bộ;
        proxy_pass http://123.123.123.123:8181;
        bao gồm proxy.inc;
    }

    vị trí ~ .*\.(php|jsp|cgi|pl|py)?$ {
        proxy_pass http://123.123.123.123:8181;
        bao gồm proxy.inc;
    }

    vị trí ~ /\.ht {từ chối tất cả;}
    vị trí ~ /\.svn/ {từ chối tất cả;}
    vị trí ~ /\.git/ {từ chối tất cả;}
    vị trí ~ /\.hg/ {từ chối tất cả;}
    vị trí ~ /\.bzr/ {từ chối tất cả;}
    vị trí ~\.(ini|log|conf)$ {từ chối tất cả;error_page 403 =404 / ;}

    disable_symlinks if_not_owner from=/home/s4h/dl.domain123.com;

    vị trí /.well-known/acme-challenge {
        default_type "text/plain";
        bí danh /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }

    vị trí /.well-known/pki-validation {
        default_type "text/plain";
        bí danh /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }
}
lá cờ us
Vui lòng thêm cấu hình nginx của bạn từ lệnh `nginx -T` vào câu hỏi.
iraqiboy90 avatar
lá cờ de
@TeroKilkanen Vừa thêm các tệp nginx vhosts
lá cờ us
Khối cho `dl.d123.com` bị thiếu. Vui lòng bao gồm cấu hình của nó quá.
iraqiboy90 avatar
lá cờ de
@TeroKilkanen Xin chào một lần nữa, vừa mới thêm nó ngay bây giờ
Điểm:2
lá cờ us

Lý do là khối sau trong cấu hình nginx:

vị trí ~.*\.(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)$ {
    gốc /home/s4h/dl.domain123.org;
    hết hạn tối đa;
    try_files $uri $uri/ @backend;
}

Điều này yêu cầu nginx phân phát tệp trực tiếp với các tiện ích mở rộng được đề cập. Lưu ý, danh sách có .html.png tiện ích mở rộng.

Bạn nên thực hiện chuyển hướng bên trong nginx:

người phục vụ {
    nghe 123.123.123.123:80;  
    server_name dl.d123.com www.dl.d123.com;

    access_log /usr/local/apache/domlogs/dl.d123.com.bytes byte;
    access_log /usr/local/apache/domlogs/dl.d123.com.log đầy đủ;
    error_log /usr/local/apache/domlogs/dl.d123.com.error.log lỗi;

    địa điểm / {
        trả lại 301 https://www.dl.domain123.org$request_uri;
    }
}
iraqiboy90 avatar
lá cờ de
Điều này có ngăn khả năng cung cấp nội dung được lưu trong bộ nhớ cache của nginx không? hoặc tệp conf nginx vhost cho dl.domain123.com sẽ tiếp quản và phục vụ bộ đệm thay thế? Một vấn đề khác là các tệp vhost bị ghi đè bởi bảng lưu trữ, vậy tôi có thể nhập quy tắc này vào một tệp riêng biệt để nó không bị ghi đè không? nó có hoạt động không, hay nginx sẽ có hai tệp vhost xung đột với nhau?
lá cờ us
Tất cả các URl cho máy chủ ảo này sẽ được chuyển hướng 301 đến `www.dl.domain123.org` và cấu hình của máy chủ ảo đó sẽ áp dụng cho các yêu cầu đối với máy chủ ảo đó. Do đó, điều này không ảnh hưởng đến việc cung cấp hình ảnh `www.dl.domain123.org`. Bạn cần hỏi nhà cung cấp bảng điều khiển lưu trữ cách sắp xếp việc này. Bảng lưu trữ làm cho hệ thống của họ hoạt động theo những cách không chuẩn và chúng tôi không thể biết chúng hoạt động như thế nào.
iraqiboy90 avatar
lá cờ de
Cảm ơn đã giúp đỡ. Tôi sẽ xem xét cách tôi có thể áp dụng cấu hình này mà không cần bảng điều khiển ghi đè lên nó ở giai đoạn sau.
iraqiboy90 avatar
lá cờ de
Tôi đã tìm ra một cách để áp dụng nó. Bảng lưu trữ có một tùy chọn để thay đổi thiết lập máy chủ web cho các miền đã chọn. Tôi có một người dùng với 15 tên miền, tất cả đều được viết lại thành domain123.org.Vì vậy, thay vì tất cả các miền bao gồm các miền của người dùng khác có cùng cấu hình "nginx -> apache" với cùng một mẫu vhost, tôi chỉ chuyển 15 miền này thành "chỉ nginx" (có thư mục mẫu vhost riêng) và có thể áp dụng một mẫu vhost tùy chỉnh áp dụng dòng "return 301" trên tất cả chúng và giữ miền server_name với các biến %domain%. Tôi không cần quy tắc htaccess nữa

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.