У меня есть сервер с 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)
Надеюсь, я хорошо объяснил.
С помощью /index.html
в качестве первого параметра try_files
сломать вещи.
index
Директива будет искать подходящие файлы в указанном порядке. Увидеть этот документ для деталей.
Так что если у вас есть каталог, содержащий более одного типа индексного файла, просто создайте свой index
Заявление в том порядке, в котором вы хотите, чтобы Nginx расставил приоритеты.
Например:
index index.html index.php;
Других решений пока нет …