Nginx在缓存的html文件上返回404

时间:2013-08-21 01:44:49

标签: nginx

我试图在没有索引页面的情况下在我的所有.html文件上添加缓存,但总是当我做了一些更改时,我的文件转到404找不到页面。

这就是我在默认配置中所拥有的,没有做出任何改变,也没有改变。

server {
listen 80;
    server_name site.net;
    root /storage/www/site.net;

    access_log /var/log/nginx/site.net.access.log;
    error_log  /var/log/nginx/site.net.log info;

    index index.php;
error_page  404 = /404.php;

    if ($host = 'www.site.net' ) {
    rewrite  ^/(.*)$  http://site.net/$1  permanent;
    }
location ~ /\. {
    deny all;
    access_log off;
    log_not_found off;
}

    location = /favicon.ico {
            log_not_found off;
            access_log off;
    }

    location = /robots.txt {
            allow all;
            log_not_found off;
            access_log off;
    }

    location ~*  \.(jpg|jpeg|png|gif|ico|css|js)$ {
       expires 365d;
     }

    # This matters if you use drush
    location = /backup {
            deny all;
    }

    # Very rarely should these ever be accessed outside of your lan
    location ~* \.(txt|log)$ {
            allow 127.0.0.1;
            deny all;
    }

    location ~ \..*/.*\.php$ {
            return 403;
    }

    location / {
            # This is cool because no php is touched for static content
            try_files $uri $uri/ @rewrite;
            expires max;
    }
location ~ ^/sites/.*/private/ {
        access_log  off;
        internal;
    }

    location @rewrite {
            # Some modules enforce no slash (/) at the end of the URL
            # Else this rewrite block wouldn't be needed (GlobalRedirect)
            rewrite ^/(.*).html$ /index.php?s=$1;
    }

    location ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_intercept_errors on;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
    }}

1 个答案:

答案 0 :(得分:0)

试试这个:

location @rewrite {
        # Some modules enforce no slash (/) at the end of the URL
        # Else this rewrite block wouldn't be needed (GlobalRedirect)
        rewrite ^/(.*).html$ /index.php?s=$1 last;
}