试图导航到Prestashop 1.7站点的前端商店时,我总是收到ERR_TOO_MANY_REDIRECTS。 但是,当进入pipe理后端时,这是很好的。
任何的意见都将会有帮助。
网站正在运行Nginx,PHP-FPM7,MariaDB。
下面的Nginxconfiguration文件:
upstream examplecoukbackend { server unix:/var/run/php-fcgi-examplecouk.sock; } server { listen 80; server_name example.co.uk; return 301 https://$server_name$request_uri; } server { listen 443 ssl; ssl_session_timeout 24h; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:RSA+3DES:AES128-SHA:!ADH:!AECDH:!MD5; ssl_prefer_server_ciphers on; ssl_certificate /etc/letsencrypt/live/example.co.uk/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.co.uk/privkey.pem; server_name example.co.uk; root /var/www/vhosts/example.co.uk/htdocs; access_log /var/www/vhosts/example.co.uk/access.log; error_log /var/www/vhosts/example.co.uk/error.log; index index.php index.html; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { auth_basic off; allow all; log_not_found off; access_log off; } # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). location ~ /\. { deny all; access_log off; log_not_found off; } ## # Gzip Settings ## gzip on; gzip_disable "msie6"; gzip_vary on; gzip_proxied any; gzip_comp_level 1; gzip_buffers 16 8k; gzip_http_version 1.0; gzip_types application/json text/css application/javascript; rewrite ^/[a-zA-Z][a-zA-Z]/(index\.php.*)$ /$1 last; #Remove language code when index.php is called directly rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last; rewrite ^/([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$1$2$3.jpg last; rewrite ^/([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$1$2$3$4.jpg last; rewrite ^/([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$1$2$3$4$5.jpg last; rewrite ^/([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg last; rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg last; rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg last; rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg last; rewrite ^/([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg last; rewrite ^/c/([0-9]+)(-[.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+.jpg$ /img/c/$1$2$3.jpg last; rewrite ^/c/([a-zA-Z_-]+)(-[0-9]+)?/.+.jpg$ /img/c/$1$2.jpg last; location /admin/ { #Change this to your admin folder if (!-e $request_filename) { rewrite ^/.*$ /admin/index.php last; #Change this to your admin folder } } location / { if (!-e $request_filename) { rewrite ^/.*$ /index.php last; } } location ~ .php$ { fastcgi_split_path_info ^(.+.php)(/.*)$; try_files $uri =404; fastcgi_keep_conn on; include /etc/nginx/fastcgi_params; fastcgi_pass examplecoukbackend; #Change this to your PHP-FPM location fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }
下面的日志文件,IP和域名一般化:
2017/01/08 21:58:00 [notice] 21867#21867: 1“^ /([0-9])( – [_ a-zA-Z0-9-] )?( – [0-9] + )“/.+.jpg $”不匹配“/index.php”,客户端:0.0.0.0,服务器:example.co.uk,请求:“GET /index.php HTTP / 1.1”,主机:“示例。“2017/01/08 21:58:00 [notice] 21867#21867: 1”^ /([0-9])([0-9])( – [_ a-zA-Z0-9 – ] )?( – [0-9] +)?/.+.jpg $“不匹配”/index.php“,客户端:0.0.0.0,服务器:example.co.uk,请求:”GET / index.php HTTP / 1.1“,主机:”example.co.uk“2017/01/08 21:58:00 [notice] 21867#21867: 1”^ /([0-9])([0-9 ])([0-9])( – [_a-zA-Z0-9-] )?( – [0-9] +)?/.+.jpg $“不匹配”/index.php“,客户端:0.0.0.0,服务器:example.co.uk,请求:“GET /index.php HTTP / 1.1”,主机:“example.co.uk”2017/01/08 21:58:00 [notice] 21867 #21867: 1“^ /([0-9])([0-9])([0-9])([0-9])( – [_a-zA-Z0-9-] )?( – [0-9] +)?/.+.jpg $“不匹配”/index.php“,客户端:0.0.0.0,服务器:example.co.uk,请求:”GET /index.php HTTP / 1.1“,主机:”example.co.uk“2017/01/08 21:58:00 [notice] 21867#21867: 1”^ /([0-9])([0-9])([0 -9])([0-9])([0-9]) ( – [_ a-zA-Z0-9-] )?( – [0-9] +)?/.+.jpg $“与”/index.php“不匹配,client:0.0.0.0,server:example .co.uk,请求:“GET /index.php HTTP / 1.1”,主机:“example.co.uk”2017/01/08 21:58:00 [notice] 21867#21867: 1“^ /([ 0-9])([0-9])([0-9])([0-9])([0-9])([0-9])( – [_ A-ZA-Z0-9 – ] )?( – [0-9] +)?/.+.jpg $“不匹配”/index.php“,客户端:0.0.0.0,服务器:example.co.uk,请求:”GET / index.php HTTP / 1.1“,主机:”example.co.uk“2017/01/08 21:58:00 [notice] 21867#21867: 1”^ /([0-9])([0-9 ])([0-9])([0-9])([0-9])([0-9])([0-9])( – [_a-zA-Z0-9-] ) ?( – [0-9] +)?/.+.jpg $“不匹配”/index.php“,客户端:0.0.0.0,服务器:example.co.uk,请求:”GET /index.php HTTP / 1.1“,主机:”example.co.uk“2017/01/08 21:58:00 [notice] 21867#21867: 1”^ /([0-9])([0-9])( [0-9])([0-9])([0-9])([0-9])([0-9])([0-9])( – [_ A-ZA-Z0- 9-] )?( – [0-9] +)?/.+.jpg $“不匹配”/index.php“,客户端:0.0.0.0,服务器:example.co.uk,请求:”GET /index.php HTTP / 1.1“,主机:”example.co.uk“2017/01/08 21:58:00 [notice] 21867#21867: 1”^ / c /([0 -9] +)( – [。 _a-zA-Z0-9 – ] *)( – [0-9] +)?/.+.jpg $“不匹配”/index.php“,客户端:0.0.0.0,服务器:example.co。英文请求:“GET /index.php HTTP / 1.1”,主机:“example.co.uk”2017/01/08 21:58:00 [notice] 21867#21867:* 1“^ / c /([客户端:0.0.0.0,服务器:example.co.uk,“/index.php”不匹配“/index.php”请求:“GET /index.php HTTP / 1.1”,主机:“example.co.uk”
这个块有一个问题:
location / { if (!-e $request_filename) { rewrite ^/.*$ /index.php last; } }
应该用这个来代替:
try_files $uri $uri/ /index.php;
然后为您的pipe理员:
location /admin/ { #Change this to your admin folder if (!-e $request_filename) { rewrite ^/.*$ /admin/index.php last; #Change this to your admin folder } }
你可以使用这个:
location /admin/ { try_files $uri $uri/ /admin/index.php; }
但是,这些更改可能无法解决您的问题。