나는내 Nginx 별칭 리디렉션이 작동하지 않는 이유는 무엇입니까 (404 단계로 이동)?
# MAIN LOCATION
location/{
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
#autoindex on;
proxy_set_header X-Real-IP $remote_addr;
}
(/var/www/x.com/index.html @) 내가 @ (/v2를가 다른 로컬 디렉토리로 리디렉션 할 x.com에 내 주요 사이트를 그것은 작동해야처럼 /var/www/x.com/v2/public/index.html는)
# Redirect beta site
location /v2 {
alias /var/www/x.com/v2/public;
}
이 보인다, 대신, 내 404 사이트 것입니다. 확실하지 않음이 내 루트 둘 이상 여기에 중요하지만, 경우 :
# path
root /var/www/throneoflies.com/html;
나는 "/" 아래는 위 "/ V2" 모두를 주문 했어요 - 변화를 보이지 않았다 . 다른 스키마 (/ v2/public /이 아니라/v2 /)이기 때문에 '별칭'대신 '루트'를 사용해서는 안됩니다.
편집 : 편집해야 할 것 같습니다.이 게시물 이후로 많은 내용을 읽었습니다. 여기 내 전체 파일은 다음과 같습니다 $uri
정확히 /v2
입니다 요청 만 일치합니다
server {
# MAIN >>
# SSL configuration
listen 443 default_server ssl;
server_name www.x.com;
error_page 404 /error/404.html;
server_tokens off;
# SSL
ssl_certificate /etc/ssl/x.com/cert.pem;
ssl_certificate_key /etc/ssl/x.com/key.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
#ssl_session_tickets off;
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
# path
root /var/www/x.com/html;
#root /var/www/x.com/v2/public; #works!
# Add index.php to the list if you are using PHP
#index index.php index.html index.htm index.nginx-debian.html;
index index.html;
# 404 handling - no cache
location = /404.html {
add_header Cache-Control "no-cache" always;
}
# Redirect beta site : Why doesn't it work if the outer block root changed to the same path works? I can REPLACE my "/" with this v2 path np. However, alias at /v2 does not work.
location = /v2 {
alias /var/www/x.com/v2/public;
#root /var/www/x.com/v2/public;
#try_files $uri $uri/ =404;
}
# MAIN LOCATION
location/{
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
#autoindex on;
proxy_set_header X-Real-IP $remote_addr;
# DENY .HTACCESS ACCESS
location ~/\.ht {
deny all;
}
}
'위치/v2'블록이 정상적으로 보입니다. '/ v2'는 404 응답 전에'/ v2 /'로 재전송됩니까? 외부 블록에'index' 지시자가 있나요? –
가시적 인 리디렉션이 표시되지 않습니다. 색인 지시문? Yea 그냥'index index.html;' –
(그것은'404 에러 코드 404 /error/404.html;에서 추한 nginx 404가 아닌 404 에러입니다.). 또한 주 루트를 내가하려고하는 별칭으로 바꾼다면/v2/public/site가 FINE을로드합니다! 경로 문제가 아닙니다. –