#.htaccess #nginx #converters
Вопрос:
Я попробовал онлайн-конвертеры, но ни один из них не работал.
Как я могу преобразовать приведенные ниже строки htaccess в правило nginx. Я смог преобразовать только одну строку из приведенного ниже кода. Я даже не знаю, правильно это или неправильно.
Мой nginx Conf
server {
server_name example.com;
root /var/www/example.com;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
Это код, который я хочу преобразовать в nginx.
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (. )/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# cors
Header set Access-Control-Allow-Origin "*"
</IfModule>
# Hide a specific file
<Files .env>
Order allow,deny
Deny from all
</Files>
Это единственные строки, которые я смог преобразовать.
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
Для
try_files $uri $uri/ /index.php;
Все еще у меня есть сомнения в приведенном выше правиле nginx, должно ли оно содержать ?$args перед знаком двоеточия или нет?
Пожалуйста, помогите мне с этим.
Ответ №1:
Пожалуйста, обратите внимание, что я использовал искусственный интеллект, чтобы помочь в этом преобразовании. Любопытно посмотреть, как это получилось.
# cors
add_header Access-Control-Allow-Origin *;
# gzip
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml rss text/javascript;
# cache
fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=cache:10m max_size=10g inactive=60m;
fastcgi_cache_key "$scheme$request_method$host$request_uri";
fastcgi_cache_use_stale error timeout invalid_header http_500;
fastcgi_ignore_headers Cache-Control Expires Set-Cookie;
# security
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "no-referrer";
add_header X-Permitted-Cross-Domain-Policies "none";
# php
fastcgi_split_path_info ^(. .php)(/. )$;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
Комментарии:
1. «искусственный интеллект»?! лол, ему нужно больше тренироваться! Помимо самой первой директивы (хотя она и не имеет контекста ), это даже не соответствует действительности!?
2. Это не работает.