[Нужна помощь]С переводом htaccess в nginx config

my_gold_biz

Постоялец
Регистрация
24 Фев 2020
Сообщения
34
Реакции
21
Подскажите как правильно перевести htaccess в nginx конфиг,в htaccess строки такого вида:
RewriteRule ^login(/?)+$ /index.php?p=login [L]
RewriteRule ^login/register(/?)+$ /index.php?p=login&mod=register [L]
как их перевести в location,заранее благодарю за помощь!
 
пробывал не помогает,я как понял надо примернно так:
Код:
location /  {
             index  index.php;
             if (!-e $request_filename)
             {
               rewrite ^/(.*)$ /index.php?_route_=$1 last;
             }
    }
сижу пробую варианты разные да забыл указать конфиг nginx:
user nginx;
worker_processes 1;

error_log /dev/null crit;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {
include /etc/nginx/mime.types;
#default_type application/octet-stream;
server_tokens off;
#sendfile on;
#tcp_nopush on;
#keepalive_timeout 65;
#gzip on;
#charset utf8;

server {
listen 127.0.0.1:80 default_server;
server_name localhost;
port_in_redirect off;
root /var/www/default;
index index.php;

location / {
set $page_to_view "/index.php";
try_files $uri $uri/ @rewrites;
root /var/www/default;
index index.php index.html index.htm;
allow 127.0.0.1;
deny all;
}

location ~*.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf|cur)$ {
expires max;
log_not_found off;
access_log off;
}

location ~ \.php$ {
#try_files $uri =404;
try_files = $uri @missing;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/default$page_to_view;
include fastcgi_params;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
#fastcgi_split_path_info ^(.+\.php)(.*)$;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

location @missing {
rewrite ^ $scheme://$host/index.php permanent;
}
location @rewrites {
if ($uri ~* ^/([a-z]+)$) {
set $page_to_view "/$1.php";
rewrite ^/([a-z]+)$ /$1.php last;
}
}
}
 
пробывал не помогает,я как понял надо примернно так:
штацесс
# Mod_security can interfere with uploading of content such as attachments. If you
# cannot attach files, remove the "#" from the lines below.
#<IfModule mod_security.c>
# SecFilterEngine Off
# SecFilterScanPOST Off
#</IfModule>

ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 405 default
ErrorDocument 406 default
ErrorDocument 500 default
ErrorDocument 501 default
ErrorDocument 503 default

<IfModule mod_rewrite.c>
RewriteEngine On

# If you are having problems with the rewrite rules, remove the "#" from the
# line that begins "RewriteBase" below. You will also have to change the path
# of the rewrite to reflect the path to your XenForo installation.
#RewriteBase /xenforo

# This line may be needed to workaround HTTP Basic auth issues when using PHP as a CGI.
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>
nginx.conf
user nginx;
worker_processes auto;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
worker_rlimit_nofile 65535;
events {
worker_connections 1024;

}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

charset utf-8;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60;
client_header_timeout 1m;
client_header_buffer_size 2k;
client_body_buffer_size 256k;
client_max_body_size 256m;
large_client_header_buffers 4 8k;
send_timeout 30;
reset_timedout_connection on;
server_tokens off;
server_name_in_redirect off;
server_names_hash_max_size 512;
server_names_hash_bucket_size 512;
proxy_redirect off;
proxy_set_header Host $host;
proxy_pass_header Set-Cookie;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffers 32 4k;


proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=1024m;
proxy_cache_key "$host$request_uri $cookie_user";
proxy_temp_path /var/cache/nginx/temp;
proxy_ignore_headers Expires Cache-Control;
proxy_cache_valid any 1d;


gzip on;
gzip_min_length 1100;
gzip_buffers 64 8k;
gzip_comp_level 3;
gzip_http_version 1.1;
gzip_proxied any;
gzip_types text/plain application/xml application/x-javascript text/css;
open_file_cache max=1024 inactive=600s;
open_file_cache_valid 2000s;
open_file_cache_min_uses 1;
open_file_cache_errors on;
#tcp_nodelay on;
output_buffers 2 64k;


include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
Так попробуй должно срабоать.
 
штацесс
# Mod_security can interfere with uploading of content such as attachments. If you
# cannot attach files, remove the "#" from the lines below.
#<IfModule mod_security.c>
# SecFilterEngine Off
# SecFilterScanPOST Off
#</IfModule>

ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 405 default
ErrorDocument 406 default
ErrorDocument 500 default
ErrorDocument 501 default
ErrorDocument 503 default

<IfModule mod_rewrite.c>
RewriteEngine On

# If you are having problems with the rewrite rules, remove the "#" from the
# line that begins "RewriteBase" below. You will also have to change the path
# of the rewrite to reflect the path to your XenForo installation.
#RewriteBase /xenforo

# This line may be needed to workaround HTTP Basic auth issues when using PHP as a CGI.
#RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
</IfModule>
nginx.conf
user nginx;
worker_processes auto;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
worker_rlimit_nofile 65535;
events {
worker_connections 1024;

}

http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

charset utf-8;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60;
client_header_timeout 1m;
client_header_buffer_size 2k;
client_body_buffer_size 256k;
client_max_body_size 256m;
large_client_header_buffers 4 8k;
send_timeout 30;
reset_timedout_connection on;
server_tokens off;
server_name_in_redirect off;
server_names_hash_max_size 512;
server_names_hash_bucket_size 512;
proxy_redirect off;
proxy_set_header Host $host;
proxy_pass_header Set-Cookie;
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
proxy_buffers 32 4k;


proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=1024m;
proxy_cache_key "$host$request_uri $cookie_user";
proxy_temp_path /var/cache/nginx/temp;
proxy_ignore_headers Expires Cache-Control;
proxy_cache_valid any 1d;


gzip on;
gzip_min_length 1100;
gzip_buffers 64 8k;
gzip_comp_level 3;
gzip_http_version 1.1;
gzip_proxied any;
gzip_types text/plain application/xml application/x-javascript text/css;
open_file_cache max=1024 inactive=600s;
open_file_cache_valid 2000s;
open_file_cache_min_uses 1;
open_file_cache_errors on;
#tcp_nodelay on;
output_buffers 2 64k;


include /etc/nginx/conf.d/*.conf;
#include /etc/nginx/sites-enabled/*;
Так попробуй должно срабоать.
не это не то,да и htaccess вообщем не работает в nginx,только в связке nginx+apache,а у меня просто nginx+php-fpm,нужно составлять именно в локейшене.
 
не это не то,да и htaccess вообщем не работает в nginx,только в связке nginx+apache,а у меня просто nginx+php-fpm,нужно составлять именно в локейшене.
чего чего??? кто те сказал то что штацесс не работает в нгинкс??? у меня 7 лет форум работал пхп-фпм+нгинкс+штацесс xD и ноу проблем, я тебе конвертер выше скидывал для штацесс чтоб сконвертировал он для нгинкс именно. А так у тебя надо правильно настраивать конфиг нгинкс. Виртуальные хосты настраивай, в зависимсоти от ОС на серваке vps/vds

Даже тут описано что и как:
Для просмотра ссылки Войди или Зарегистрируйся
Если есть проблемы с форумом(сайтом) пиши помогу
 
Последнее редактирование:
чего чего??? кто те сказал то что штацесс не работает в нгинкс??? у меня 7 лет форум работал пхп-фпм+нгинкс+штацесс xD и ноу проблем, я тебе конвертер выше скидывал для штацесс чтоб сконвертировал он для нгинкс именно. А так у тебя надо правильно настраивать конфиг нгинкс. Виртуальные хосты настраивай, в зависимсоти от ОС на серваке vps/vds

Даже тут описано что и как:
Для просмотра ссылки Войди или Зарегистрируйся
Если есть проблемы с форумом(сайтом) пиши помогу
написанно в манах по nginx,то что нет такого механизма как mod_rwrite - он только в апаче,ваш конфиг nginx.conf в нем вообще нет параметров виртуального хоста,а только опитимазация и настроики nginx,приложите файл include /etc/nginx/conf.d/*.conf;
 
написанно в манах по nginx,то что нет такого механизма как mod_rwrite - он только в апаче,ваш конфиг nginx.conf в нем вообще нет параметров виртуального хоста,а только опитимазация и настроики nginx,приложите файл include /etc/nginx/conf.d/*.conf;
а зачем я буду выкладывать файл виртуального хоста? всё есть в доках и в гугле как и что настраивать Для просмотра ссылки Войди или Зарегистрируйся
Ещё раз говорю если проблемы с настройкой нгинкс + штацесс+пхп-фпм пиши помогу
 
а зачем я буду выкладывать файл виртуального хоста? всё есть в доках и в гугле как и что настраивать Для просмотра ссылки Войди или Зарегистрируйся
Ещё раз говорю если проблемы с настройкой нгинкс + штацесс+пхп-фпм пиши помогу
читал это не помогает,и конвертор пробывал тоже не помог,да помоги буду благодарен!
 
rewrite объявляются в блоках server { }

Скрытое содержимое доступно для зарегистрированных пользователей!
 
Назад
Сверху