La redirection YOURLS ne fonctionne pas dans NGINX - téléchargements de fichiers à la place
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;
#}
}
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