Puncte:1

regula de rescrire htaccess nu funcționează cu extensiile de fișiere

drapel de

Am două domenii configurate în același folder pe un server.

adică

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

Am un fișier htaccess în /var/www/public_html/domain123.com cu următoarele rânduri:

RewriteEngine Pornit
#Rescrieți adresele URL pe un domeniu SSL
RewriteCond %{HTTP_HOST} ^dl\.d123\.com [NC]
RewriteRule ^(.*)$ https://dl.domain123.com/$1 [L,R=301,NC]

Această regulă funcționează bine cu orice URL care nu conține extensia de fișier

dl.d123.com/folder1/folder2 redirecționează către dl.domain123.com/folder1/folder2

dar nu funcționează cu nicio adresă URL care conține o extensie de fișier

dl.d123.com/folder1/folder2/index.html rămâne același.

Nu este doar extensia html. Același lucru cu fișierele png.

Serverul este configurat cu nginx ca proxy. nginx:80/443 -> apache:8080/8443

EDITAȚI | ×: (Numele de domeniu și IP-urile au fost schimbate pentru confidențialitate/securitate) Configurațiile Nginx :80

Server {
    asculta 123.123.123.123:80;  
    nume_server dl.domain123.org www.dl.domain123.org;

    access_log /usr/local/apache/domlogs/dl.domain123.org.bytes octeți;
    access_log /usr/local/apache/domlogs/dl.domain123.org.log complet;
    error_log /usr/local/apache/domlogs/dl.domain123.org.error.log eroare;

    Locație / {
        locație ~.*\.(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)$ {
            rădăcină /home/s4h/dl.domain123.org;                    
            expira max;
            try_files $uri $uri/ @backend;
        }
        
        error_page 405 = @backend;
        error_page 500 = @personalizat;
        add_header X-Cache „HIT din Backend”;
        add_header X-XSS-Protection „1; mod=bloc” întotdeauna;
        add_header X-Content-Type-Options „nosniff” întotdeauna;
        trece_proxy http://123.123.123.123:8181;
        include proxy.inc;
    }

    locație @backend {
        intern;
        trece_proxy http://123.123.123.123:8181;
        include proxy.inc;
    }

    locație @personalizat {
        intern;
        trece_proxy http://123.123.123.123:8181;
        include proxy.inc;
    }

    locație ~ .*\.(php|jsp|cgi|pl|py)?$ {
        trece_proxy http://123.123.123.123:8181;
        include proxy.inc;
    }

    locație ~ /\.ht {nega tot;}
    locație ~ /\.svn/ {nega tot;}
    locație ~ /\.git/ {nega tot;}
    locație ~ /\.hg/ {nega tot;}
    locație ~ /\.bzr/ {nega tot;}
    locație ~\.(ini|log|conf)$ {deny all;error_page 403 =404 / ;}

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

    locație /.well-cunoscut/acme-challenge {
        default_type "text/plain";
        alias /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }

    locație /.well-cunoscut/pki-validation {
        default_type "text/plain";
        alias /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }
}

Configurații Nginx: 443

Server {
    asculta 123.123.123.123:443 ssl ;
    nume_server dl.domain123.org www.dl.domain123.org;
    
    access_log /usr/local/apache/domlogs/dl.domain123.org.bytes octeți;
    access_log /usr/local/apache/domlogs/dl.domain123.org.log complet;
    error_log /usr/local/apache/domlogs/dl.domain123.org.error.log eroare;

    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+ECDSA+SHA384:EECDH+ERSA!a:RCULL:! :!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
    ssl_prefer_server_ciphers activat;

    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 60m;

    Locație / {
        locație ~.*\.(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)$ {
            rădăcină /home/s4h/dl.domain123.org;
            expira max;
            try_files $uri $uri/ @backend;
        }
        
        error_page 405 = @backend;
        error_page 500 = @personalizat;
        add_header X-Cache „HIT din Backend”;
        add_header Strict-Transport-Security "max-age=31536000";
        add_header X-XSS-Protection „1; mod=bloc” întotdeauna;
        add_header X-Content-Type-Options „nosniff” întotdeauna;
        trece_proxy http://123.123.123.123:8181;
        include proxy.inc;
    }

    locație @backend {
        intern;
        trece_proxy http://123.123.123.123:8181;
        include proxy.inc;
    }

    locație @personalizat {
        intern;
        trece_proxy http://123.123.123.123:8181;
        include proxy.inc;
    }

    locație ~ .*\.(php|jsp|cgi|pl|py)?$ {
        trece_proxy http://123.123.123.123:8181;
        include proxy.inc;
    }

    locație ~ /\.ht {nega tot;}
    locație ~ /\.svn/ {nega tot;}
    locație ~ /\.git/ {nega tot;}
    locație ~ /\.hg/ {nega tot;}
    locație ~ /\.bzr/ {nega tot;}
    locație ~\.(ini|log|conf)$ {deny all;error_page 403 =404 / ;}

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

    locație /.well-cunoscut/acme-challenge {
        default_type "text/plain";
        alias /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }

    locație /.well-cunoscut/pki-validation {
        default_type "text/plain";
        alias /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }
}

dl.d123.com Nginx, Numai portul 80, fără SSL instalat.

Server {
    asculta 123.123.123.123:80;  
    nume_server dl.d123.com www.dl.d123.com;

    access_log /usr/local/apache/domlogs/dl.d123.com.bytes octeți;
    access_log /usr/local/apache/domlogs/dl.d123.com.log complet;
    error_log /usr/local/apache/domlogs/dl.d123.com.error.log eroare;

    Locație / {
        locație ~.*\.(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)$ {
            root /home/s4h/dl.domain123.com;                    
            expira max;
            try_files $uri $uri/ @backend;
        }
        
        error_page 405 = @backend;
        error_page 500 = @personalizat;
        add_header X-Cache „HIT din Backend”;
        add_header X-XSS-Protection „1; mod=bloc” întotdeauna;
        add_header X-Content-Type-Options „nosniff” întotdeauna;
        trece_proxy http://123.123.123.123:8181;
        include proxy.inc;
    }

    locație @backend {
        intern;
        trece_proxy http://123.123.123.123:8181;
        include proxy.inc;
    }

    locație @personalizat {
        intern;
        trece_proxy http://123.123.123.123:8181;
        include proxy.inc;
    }

    locație ~ .*\.(php|jsp|cgi|pl|py)?$ {
        trece_proxy http://123.123.123.123:8181;
        include proxy.inc;
    }

    locație ~ /\.ht {nega tot;}
    locație ~ /\.svn/ {nega tot;}
    locație ~ /\.git/ {nega tot;}
    locație ~ /\.hg/ {nega tot;}
    locație ~ /\.bzr/ {nega tot;}
    locație ~\.(ini|log|conf)$ {deny all;error_page 403 =404 / ;}

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

    locație /.well-cunoscut/acme-challenge {
        default_type "text/plain";
        alias /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }

    locație /.well-cunoscut/pki-validation {
        default_type "text/plain";
        alias /usr/local/apache/autossl_tmp/.well-known/acme-challenge;
    }
}
drapel us
Vă rugăm să adăugați configurația dvs. nginx din comanda `nginx -T` la întrebare.
iraqiboy90 avatar
drapel de
@TeroKilkanen Tocmai a adăugat fișierele nginx vhosts
drapel us
Blocul pentru `dl.d123.com` lipsește. Vă rugăm să includeți și configurația acestuia.
iraqiboy90 avatar
drapel de
@TeroKilkanen Bună din nou, tocmai l-am adăugat acum
Puncte:2
drapel us

Motivul este următorul bloc în configurația nginx:

locație ~.*\.(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)$ {
    rădăcină /home/s4h/dl.domain123.org;
    expira max;
    try_files $uri $uri/ @backend;
}

Acest lucru îi spune lui nginx să servească fișierele direct cu extensiile menționate. Rețineți, lista are .html și .png extensii.

Ar trebui să faceți redirecționarea în nginx:

Server {
    asculta 123.123.123.123:80;  
    nume_server dl.d123.com www.dl.d123.com;

    access_log /usr/local/apache/domlogs/dl.d123.com.bytes octeți;
    access_log /usr/local/apache/domlogs/dl.d123.com.log complet;
    error_log /usr/local/apache/domlogs/dl.d123.com.error.log eroare;

    Locație / {
        return 301 https://www.dl.domain123.org$request_uri;
    }
}
iraqiboy90 avatar
drapel de
Oprește acest lucru capacitatea nginx de a difuza conținut în cache? sau fișierul nginx vhost conf pentru dl.domain123.com va prelua și va servi cache-ul în schimb? O altă problemă este că fișierele vhost sunt suprascrise de panoul de găzduire, așa că pot introduce această regulă într-un fișier separat, astfel încât să nu fie suprascris? ar funcționa asta sau nginx ar avea două fișiere vhost care ar intra în conflict unul cu celălalt?
drapel us
Toate URL-urile pentru această gazdă virtuală vor fi 301 redirecționate către `www.dl.domain123.org`, iar configurația acelei gazde virtuale se va aplica cererilor pentru acea gazdă virtuală. Prin urmare, acest lucru nu are niciun efect asupra difuzării imaginilor „www.dl.domain123.org”. Trebuie să întrebați furnizorul panoului de găzduire cum să aranjați acest lucru. Panourile de găzduire fac sistemele lor să funcționeze în moduri non-standard și nu putem ști cum funcționează.
iraqiboy90 avatar
drapel de
Multumesc pentru ajutor. Voi analiza cum pot aplica această configurație fără ca panoul să o suprascrie într-o etapă ulterioară.
iraqiboy90 avatar
drapel de
Am găsit o modalitate de a o aplica. Panoul de găzduire are o opțiune de modificare a configurației serverului web pentru domeniile selectate. Am un utilizator cu 15 domenii, toate rescriind pe domain123.org.Deci, în loc ca toate domeniile, inclusiv domeniile altor utilizatori să aibă aceeași configurație „nginx -> apache” cu același șablon vhost, tocmai am schimbat aceste 15 domenii la „numai nginx” (care are propriul director de șabloane vhost) și am putut aplica un șablon vhost personalizat care aplică linia „return 301” pe toate și păstrează domeniul server_name cu variabile %domain%. Nu mai am nevoie de regula htaccess

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.