La redirection YOURLS ne fonctionne pas dans NGINX - téléchargements de fichiers à la place

StackOverflow https://stackoverflow.com//questions/25082696

  •  02-01-2020
  •  | 
  •  

Question

j'essaye de configurer VOTRE pour mon site.J'ai configuré l'hôte virtuel dans mon nginx et l'application principale fonctionne parfaitement.Mais lorsque vous cliquez sur une URL courte, au lieu de rediriger vers une URL réelle, vous téléchargez en réalité le fichier.

Je vois que tout le problème vient du fichier de configuration nginx, car le même système fonctionnait bien avec Apache.

Voici mon fichier de configuration nginx :

server {
    listen   80; ## listen for ipv4; this line is default and implied
#   listen   [::]:80 default ipv6only=on; ## listen for ipv6

    root /usr/share/nginx/evry.st/;
    index index.html index.htm index.php;

    # Make site accessible from http://localhost/
    server_name evry.st;

    location ~* \.(ico|css|js|gif|jpe?g|png)(\?[0-9]+)?$ {
                expires max;
                log_not_found off;
        }

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to index.html
        try_files $uri $uri/ /index.php;
         if (!-e $request_filename){
    rewrite ^(.*)$ /?$1 break;
  }

        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
    }

    location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        deny all;
    }

    # Only for nginx-naxsi : process denied requests
    #location /RequestDenied {
        # For example, return an error code
        #return 418;
    #}

    #error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    #error_page 500 502 503 504 /50x.html;
    #location = /50x.html {
    #   root /usr/share/nginx/www;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~* \.php$ {
         ## FastCGI microcache.
        #include microcache_fcgi.conf;
        #fastcgi_split_path_info ^(.+\.php)(.*)$;
    #   # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
    #
    #   # With php5-cgi alone:
        #fastcgi_pass 127.0.0.1:9000;
    #   # With php5-fpm:
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;

        fastcgi_buffer_size 128k;
        fastcgi_buffers 16 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
            fastcgi_intercept_errors on;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    #location ~ /\.ht {
    #   deny all;
    #}
}
Était-ce utile?

La solution

VOTRE n'a pas /index.php.Adaptez votre try_files déclaration à lire :

try_files $uri $uri/ /yourls-loader.php;

Cela devrait être inutile et peut être supprimé :

if (!-e $request_filename){
    rewrite ^(.*)$ /?$1 break;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top