Конвертация .htaccess для NGINX — как?

Всем здравствуйте! Есть корень сайта, в нём две папки
app
и
public
рядом лежит .htaccess с кодом
RewriteEngine on
RewriteRule ^(.*)   public/$1   [L]

Папка app не имеет фалов апача
В папке public он есть, его код
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$   $1                 [L]
RewriteRule ^(.*)$   index.php?url=$1   [QSA,L]

тут же лежит файл index.php
В самом коде скрипта есть встроенное ЧПУ. Из за всей этой каши, предусмотренной для апача, не могу сделать рабочий конфиг
Самый рабочий вариант
spoiler
server {
	listen 127.0.0.1:80;
	server_name localhost;

	root home/localhost/public_html;

	index index.php index.html;

	log_not_found off;
	access_log logs/localhost-access.log main;

	charset utf-8;
	
	#convert htaccess
	location / {
  	rewrite ^/(.*) /public/$1 break;
	}
	
	location /public/ {
  	if (-e $request_filename){
    	rewrite ^(.*)$ /public/$1 break;
  	}
  	rewrite ^(.*)$ /index.php?url=$1 break;
	}
	#convert htaccess
	
	location ~ /\. { deny all; }
	location = /favicon.ico { }
	location = /robots.txt { }

	location ~ \.php$ {
		fastcgi_pass 127.0.0.1:9071;
		fastcgi_index index.php;
		fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
		include fastcgi_params;
	}

}

но не работает ЧПУ и ошибка одного файла статики, хотя путь правильный.
Гугл использовался, доки читались. Надеюсь на вашу помощь.
  • Вопрос задан
  • 1303 просмотра
Решения вопроса 1
@dodo512
server {
  listen 127.0.0.1:80;
  server_name localhost;

  root /home/localhost/public_html/public;

  index index.php;

  log_not_found off;
  access_log logs/localhost-access.log main;

  charset utf-8;
  
  location / {
    try_files $uri $uri/ @php;
  }
  
  location @php {
    rewrite ^/(.*) /index.php?url=$1;
  }
  
  location ~ /\. { deny all; }
  location = /favicon.ico { }
  location = /robots.txt { }

  location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9071;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
  }

}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

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

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