@Horosh294

Настроить location в nginx в centos 7?

Переезжаю с apache на nginx. Сайт на DLE. Правила htaccess переписали на PHP.
Однако, одно правило невозможно выразить средствами PHP. Это правило, которое перенаправляет все запросы на index.php .
Для этого нужно менять конфигуративный файл nginx . Для этого иду в файл /etc/nginx/vhosts/www-root/site.ru.conf.
Его содержимое:
server {
  server_name site.ru www.site.ru;
  charset off;
  index index.php index.html;
  disable_symlinks if_not_owner from=$root_path;
  include /etc/nginx/vhosts-includes/*.conf;
  include /etc/nginx/vhosts-resources/site.ru/*.conf;
  access_log /var/www/httpd-logs/site.ru.access.log;
  error_log /var/www/httpd-logs/site.ru.error.log notice;
  ssi on;
  return 301 https://$host:443$request_uri;
  set $root_path /var/www/www-root/data/www/site.ru;
  root $root_path;
  location / {
    location ~ [^/]\.ph(p\d*|tml)$ {
      try_files /does_not_exists @php;
    }
  }
  listen 111.111.11.11:80;
  location @php {
    fastcgi_index index.php;
    fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@site.ru";
    fastcgi_pass unix:/var/www/php-fpm/www-root.sock;
    fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
    try_files $uri =404;
    include fastcgi_params;
  }
}
server {
  server_name site.ru www.site.ru;
  ssl_certificate "/var/www/httpd-cert/www-root/site.ru.crt";
  ssl_certificate_key "/var/www/httpd-cert/www-root/site.ru.key";
  ssl_ciphers EECDH:+AES256:-3DES:RSA+AES:!NULL:!RC4;
  ssl_prefer_server_ciphers on;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_dhparam /etc/ssl/certs/dhparam4096.pem;
  charset off;
  index index.php index.html;
  disable_symlinks if_not_owner from=$root_path;
  include /etc/nginx/vhosts-includes/*.conf;
  include /etc/nginx/vhosts-resources/site.ru/*.conf;
  access_log /var/www/httpd-logs/site.ru.access.log;
  error_log /var/www/httpd-logs/site.ru.error.log notice;
  ssi on;
  set $root_path /var/www/www-root/data/www/site.ru;
  root $root_path;
  location / {
    location ~ [^/]\.ph(p\d*|tml)$ {
      try_files /does_not_exists @php;
    }
  }
  listen 111.111.11.11:443 ssl http2;
  location @php {
    fastcgi_index index.php;
    fastcgi_param PHP_ADMIN_VALUE "sendmail_path = /usr/sbin/sendmail -t -i -f webmaster@site.ru";
    fastcgi_pass unix:/var/www/php-fpm/www-root.sock;
    fastcgi_split_path_info ^((?U).+\.ph(?:p\d*|tml))(/?.+)$;
    try_files $uri =404;
    include fastcgi_params;
  }
}

А что добавить нужно и куда? Самому мне не удалось с этим разобраться.
  • Вопрос задан
  • 164 просмотра
Решения вопроса 1
@dodo512
location / {
    location ~ [^/]\.ph(p\d*|tml)$ {
        try_files /does_not_exists @php;
    }
}
listen 111.111.11.11:443 ssl http2;
location @php {

Заменить на
location / {
        try_files $uri $uri/ /index.php;
}
listen 111.111.11.11:443 ssl http2;
location ~ \.php$ {
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы