Maison  >  Questions et réponses  >  le corps du texte

php - Utilisez Nginx pour créer des ressources statiques Typecho, tous les 302 sautent à la page 404

L'utilisation de cette méthode a échoué/q/10...

Non seulement la ressource statique 302 saute, mais le 404.html auquel on accède ne peut pas être chargé et le php derrière l'URL ne peut pas être supprimé. S'il vous plaît, aidez-moi à le résoudre ! ! !

La configuration spécifique de Nginx est la suivante

Port 80

server {
        listen  80;
        server_name crazyc.cn www.crazyc.cn;
        root /var/www/html/;
        #rewrite ^/(.*)$ https://crazyc.cn/index.php permanent;
        if ($ssl_protocol = "") {
            return 301 https://$server_name$request_uri;
        }
        if ($host != 'crazyc.cn' ) {
            return 301 https://crazyc.cn$request_uri;
        }
        error_log /logs/error.log;
        charset     utf-8;
        client_body_buffer_size                         512k;
        proxy_connect_timeout                           90;
        proxy_send_timeout                              90;
        proxy_read_timeout                              4000;
        proxy_buffers                                   32 4k;
        client_max_body_size 75m;
        # Load configuration files for the default server block.
        location / {
            index index.html index.php;
            if (!-e $request_filename) {
                rewrite ^(.*)$ /index.php last;
            }
        }


    }
    include vhost/*;

Port 443 sous vhost/

server {
    listen       443 ssl;
    server_name crazyc.cn www.crazyc.cn;
    ssl on;
    ssl_certificate /root/.acme.sh/crazyc.cn/fullchain.cer;
    ssl_certificate_key /root/.acme.sh/crazyc.cn/crazyc.cn.key;
    ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers  HIGH:!ADH:!EXPORT56:RC4+RSA:+MEDIUM;
    error_log /logs/error.log;
    error_page 404 = https://crazyc.cn/404.html;
    charset     utf-8;

    client_max_body_size 75m;
        # Load configuration files for the default server block.
        location ~ .*\.php(\/.*)*$ {
            root html;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME /var/www/html$fastcgi_script_name;
            include fastcgi_params;
            fastcgi_pass  127.0.0.1:9000;
            #include fastcgi.conf;
            #fastcgi_pass  127.0.0.1:9000;
        }
        access_log logs/yourdomain.log combined;
}
我想大声告诉你我想大声告诉你2684 Il y a quelques jours551

répondre à tous(1)je répondrai

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-17 09:57:38

    Vous avez trop d'éléments configurés dans le port 80. Vous n'avez besoin de configurer qu'un seul élément dans le port 80, c'est-à-dire que toutes les requêtes passent au 443. Modifiez ensuite spécifiquement la configuration du 443.
    En 443, vous avez uniquement spécifié l'accès à php et n'avez pas précisé le chemin de la ressource statique. La configuration de référence est la suivante :

    server {
        listen 80;
        server_name crazyc.cn www.crazyc.cn;
        rewrite ^ https://$server_name$request_uri permanent;
    }
    
    server {
        listen 443 ssl;
        server_name crazyc.cn www.crazyc.cn;
        index index.php;
        charset utf-8;
        
        ssl on;
        ssl_certificate /root/.acme.sh/crazyc.cn/fullchain.cer;
        ssl_certificate_key /root/.acme.sh/crazyc.cn/crazyc.cn.key;
        ssl_ciphers "CHACHA20:GCM:HIGH:!DH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS";
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        
        # 静态资源
        location ~* .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|apk|ttf|woff|woff2|svg|flv|swf)$ {
            add_header Access-Control-Allow-Origin *;
            root /example/path/; # 这里配你的静态资源文件根路径
        }
        
        # 以下是php配置
        location / {
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include       fastcgi_params;
            try_files     $uri $uri/ /index.php?$args;
        }

    Si vos ressources statiques sont placées avec des fichiers php, la racine des ressources statiques peut être placée à l'extérieur, comme ceci :

    server {
        listen 80;
        server_name crazyc.cn www.crazyc.cn;
        rewrite ^ https://$server_name$request_uri permanent;
    }
    
    server {
        listen 443 ssl;
        server_name crazyc.cn www.crazyc.cn;
        root /example/path/; # 这里配你的静态资源文件根路径
        index index.php;
        charset utf-8;
        
        ssl on;
        ssl_certificate /root/.acme.sh/crazyc.cn/fullchain.cer;
        ssl_certificate_key /root/.acme.sh/crazyc.cn/crazyc.cn.key;
        ssl_ciphers "CHACHA20:GCM:HIGH:!DH:!RC4:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS";
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        
        # 静态资源
        location ~* .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css|apk|ttf|woff|woff2|svg|flv|swf)$ {
            add_header Access-Control-Allow-Origin *;
        }
        
        # 以下是php配置
        location / {
            fastcgi_pass  127.0.0.1:9000;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include       fastcgi_params;
            try_files     $uri $uri/ /index.php?$args;
        }
    }

    répondre
    0
  • Annulerrépondre