2017-02-16 18 views
0

Я пытаюсь изменить мою конфигурацию nginx для перенаправления с веб-корня («/») на /dir-a, а затем, если это возвращает 404-редирект до /dir-b. Я не совсем уверен, как и если это возможно.nginx перенаправляет из корня веб-узла в a, а если 404, то попробуйте b

Это то, что я до сих пор ...

server { 
    listen 443 ssl; 
    ssl on; 
    ssl_certificate /xyz.crt; 
    ssl_certificate_key /xyz.key; 

    root /var/www/mysite; 

    index index.php index.html index.htm index.nginx-debian.html; 

    server_name _; 

    client_max_body_size 2G; 
    client_body_buffer_size 128k; 

error_page 404 =200 /dir-b; 
    location =/{ 
      try_files $uri $uri/ /dir-a; 
    } 

    # Serve static assets 
    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico)$ { 

      gzip on; 
      gzip_http_version 1.0; 
      gzip_vary on; 
      gzip_comp_level 9; 
      gzip_proxied any; 
      gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; 
      gzip_buffers 16 8k; 

      access_log off; 
      expires max; 
      add_header Cache-Control public; 

      break; 
    } 

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
    location ~ \.php$ { 
      include snippets/fastcgi-php.conf; 

      fastcgi_buffer_size 256k; 
      fastcgi_buffers 8 256k; 
      fastcgi_busy_buffers_size 256k; 

      fastcgi_param HTTPS on; 
      fastcgi_read_timeout 6000; 
      fastcgi_param APPLICATION_ENV production; 
      fastcgi_pass unix:/var/run/php5-fpm.sock; 
    } 

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

Но это возвращает страницу 404, так что я не знаю, куда идти отсюда. Мне нужно, чтобы вместо этого попробовать dir-b.

ответ

0
error_page 404 /dir-b;  
location =/{ 
       rewrite "/" /dir-a permanent; 
     } 

но это вернет 404 код, и вы можете изменить его error_page 404 = 200/реж-б;

location =/{ 
       rewrite "/" /dir-a permanent; 
     } 

это возвращает код 200

статус Вы можете прочитать this topic для получения дополнительной информации

+0

Это еще просто врезается на 404 странице и не пытающегося реж-б – Tom

+0

мой плохой, отредактированный код –

+0

Still застрял на 404 для dir-a – Tom