Конечно, я помогу вам с конфигурацией правил nginx, которые эквивалентны указанным в .htaccess. Помните, что конфигурация Nginx отличается от Apache, и вы не можете просто "копировать и вставлять" правила из файла .htaccess. Вам необходимо написать новые инструкции, соответствующие синтаксису Nginx.
Давайте переведём ваш список по порядку:
1. Скрыть директории:
В Nginx вы можете запретить доступ к директориям следующим образом:
```nginx
location ~ /\..*/ {
deny all;
return 403;
}
location / {
autoindex off;
}
```
2. Перенаправление с IP на домен:
Сначала вам нужен серверный блок, который будет слушать IP-адрес, а затем выполните перенаправление на ваш домен.
```nginx
server {
listen 80;
server_name your.server.ip.address;
return 301 $scheme://xxxxxxxxxxxx.xx$request_uri;
}
```
3. Удаление www из домена:
Создайте ещё один серверный блок для обработки www-варианта.
```nginx
server {
listen 80;
server_name www.example.com;
return 301 $scheme://example.com$request_uri;
}
```
4. Удаление расширения .php:
Это одно из наиболее сложных правил для переписывания из Apache в Nginx. В Nginx вы обычно определяете локацию для обработки PHP-файлов.
```nginx
location / {
try_files $uri $uri/ @extensionless-php;
index index.php;
}
location ~ ^(.+)\.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location @extensionless-php {
rewrite ^(.*)$ $1.php last;
}
```
Здесь используется блок `location @extensionless-php` для перезаписи запросов без расширения PHP на адреса с их использованием.
5. Перенаправление всех запросов на index.php:
Вам нужно добавить правило fallback в основной блок `location /`:
```nginx
location / {
try_files $uri $uri/ /index.php?$query_string;
}
```
Учтите, что вышеобозначенные конфигурации должны быть адаптированы в соответствии с вашей текущей настройкой и могут потребовать дополнительной настройки в зависимости от ваших конкретных потребностей. Также, обратите внимание на правильную версию PHP-FPM, которая указана в вашем конфигурационном примере – `unix:/var/run/php/php7.4-fpm.sock`. Она должна совпадать с установленной у вас версией PHP и настройками PHP-FPM.
Не забудьте проверить конфигурацию командой `nginx -t`, и если все в порядке, перезагрузить Nginx командой `systemctl reload nginx` (или `service nginx reload` в зависимости от вашего дистрибутива).