在Nginx上使用index.html的WordPress(Debian)

时间:2018-11-29 13:10:36

标签: php wordpress nginx debian nginx-config

我有一台具有nginx(php-fpm)的服务器,但我需要将索引设置为index.html。

我的配置是这样:

server { 
    listen 80 default_server;

    #SSL configuration listen *:443 ssl http2;

    ssl_certificate /path/to/my.dev.pem; 
    ssl_certificate_key /path/to/my-key.pem;    

    root /home/path/to/misite.dev; 
    index index.php index.html index.htm; 
    server_name misite.dev ;

    location / { 
        try_files index.html $uri/ /index.php?$args; 
    }
    location ~ \.php$ { 
        try_files $uri =404;    
        fastcgi_split_path_info ^(.+\.php)(/.+)$;   
        fastcgi_pass unix:/run/php/php7.1-fpm.sock; 
        fastcgi_index index.php;    
        include fastcgi.conf; 
    } 
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|eot|otf|ttf|woff)$ {     
        add_header Access-Control-Allow-Origin *;   
        add_header Cache-Control "public, max-age=31536000, immutable";     
        access_log off; 
        log_not_found off; 
    }
    location = /robots.txt { 
        access_log off; 
        log_not_found off; 
    }
    location ~ /\. { 
        deny all; 
        access_log off; 
        log_not_found off; 
    } 
}

有了这个,只有index.html可以正常工作,而对于php则没有任何作用,并且通过删除位置的index.html,一切都可以在php上正常工作,但没有index.html

location / {try_files -> index.html <- $ uri / /index.php?$args;}

您知道我该怎么做才能使两种情况都能正常工作吗?

(index.html和带有php的动态页面,例如mysite.com/tag/my-tag)

我希望我解释得很好。

1 个答案:

答案 0 :(得分:0)

使用/index.html作为try_files的第一个参数会导致问题。

index伪指令将按照显示的顺序查找匹配的文件。有关详细信息,请参见this document

因此,如果您的目录包含多种类型的索引文件,只需按照您希望Nginx对其进行优先排序的顺序构造index语句即可。

例如:

index index.html index.php;