Правило для Nginx
Модераторы: /dev/random, Модераторы разделов
Правило для Nginx
Подскажите пожалуйста, как написать правило для nginx
Суть задачи такая:
Мне нужно вот такого рода url переадресовывать по 301
https://site.ru/category/category-name// --> https://site.ru/category/category-name/
https://site.ru/product/product-name// --> https://site.ru/product/product-name/
По сути нужно убрать лишний / и переадресовать.
Заранее благодарен.
Суть задачи такая:
Мне нужно вот такого рода url переадресовывать по 301
https://site.ru/category/category-name// --> https://site.ru/category/category-name/
https://site.ru/product/product-name// --> https://site.ru/product/product-name/
По сути нужно убрать лишний / и переадресовать.
Заранее благодарен.
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Правило для Nginx
https://nginx.org/ru/docs/http/ngx_http_rewrite_module.html#rewrite
Примерно так:
(не проверял)
Примерно так:
Код: Выделить всё
rewrite (.*)//$ $1/ permanent;
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Правило для Nginx
А так?
У меня работает.
rewrite (.*?)//+(.*) $1/$2 permanent;
У меня работает.
rewrite (.*?)//+(.*) $1/$2 permanent;
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Знание сила, незнание Рабочая сила!
Спасибо сказали:
Re: Правило для Nginx
Не подумал еще одно спросить)) А в какой блок это нужно засунуть подскажите пожалуйста?
Нашел где есть схожее правило... оно прямо в блоке server
server {
rewrite ^(.*)(\s|%20)$ $1 permanent;
Но к сожалению оба предложенных варианта не сработали(
Пробовал после существующей строки вставить вот это все...
rewrite (.*)//$ $1/ permanent;
rewrite ^(.*)//$ $1/ permanent;
rewrite (.*?)//+(.*) $1/$2 permanent;
rewrite ^(.*?)//+(.*) $1/$2 permanent;
rewrite ^(.*)//+(.*) $1/$2 permanent;
Добавлено (11:45):
Поторопился с вопросом.Нашел где есть схожее правило... оно прямо в блоке server
server {
rewrite ^(.*)(\s|%20)$ $1 permanent;
Но к сожалению оба предложенных варианта не сработали(
Пробовал после существующей строки вставить вот это все...
rewrite (.*)//$ $1/ permanent;
rewrite ^(.*)//$ $1/ permanent;
rewrite (.*?)//+(.*) $1/$2 permanent;
rewrite ^(.*?)//+(.*) $1/$2 permanent;
rewrite ^(.*)//+(.*) $1/$2 permanent;
Re: Правило для Nginx
Перед самым первым локейшеном.
ХЗ, значит этот редирект покрывается другим редиректом.
Смотрите внимательно конфиг виртуал хоста.
Вы после того как добавили редирект перезагружали nginx?
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Знание сила, незнание Рабочая сила!
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Правило для Nginx
Здесь был неправильный совет. Прошу прощения.
Последний раз редактировалось Bizdelnick 23.01.2021 16:41, всего редактировалось 1 раз.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Правило для Nginx
Очень странно.
С учетом того что это первое что идет в конфигурации nginx в блоке server оно не работает.
Я попробовал поменять правило местами даже
Поле reload второе правило rewrite ^(.*)(\s|%20)$ $1 permanent; продолжает работать а первое rewrite (.*)//+(.*) $1/$2 permanent; так и не ожило.
С учетом того что это первое что идет в конфигурации nginx в блоке server оно не работает.
Я попробовал поменять правило местами даже
Код: Выделить всё
server {
rewrite (.*)//+(.*) $1/$2 permanent;
rewrite ^(.*)(\s|%20)$ $1 permanent;
listen 443 ssl http2;
Re: Правило для Nginx
Показывайте весь конфиг целиком.
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Знание сила, незнание Рабочая сила!
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Правило для Nginx
Прошу прощения, я совершенно забыл, что делает ? после квантификатора. Всё правильно bars написал.
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Спасибо сказали:
Re: Правило для Nginx
Весь конфиг
Код: Выделить всё
# configuration file /etc/nginx/nginx.conf:
load_module modules/ngx_http_geoip2_module.so;
load_module modules/ngx_stream_geoip2_module.so;
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
use epoll;
worker_connections 2048;
multi_accept on;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
geoip2 /usr/share/GeoIP/GeoLite2-Country.mmdb {
auto_reload 5m;
$geoip2_data_country_code default=RU country iso_code;
$geoip2_data_country_name country names en;
}
map $geoip2_data_country_code $allow_visit {
default yes;
################ Add blocked countries here by Country Code
PS no; # Palestine
VN no; # Vietnam
EG no; # Egypt
TH no; # Thailand
PK no; # Pakistan
ID no; # Indonesia
IN no; # India
MA no; # Morocco
PE no; # Peru
LK no; # Sri Lanka
MY no; # Malaysia
BD no; # Bangladesh
BR no; # Brazil
TR no; # Turkey
AT no; # Austria
MX no; # Mexico
KE no; # Kenya
PT no; # Portugal
BI no; # Burundi
SA no; # Saudi Arabia
TN no; # Tunisia
AZ no; # Azerbaijan
AE no; # United Arab Emirates
PH no; # Philippines
TW no; # Taiwan
DZ no; # Algeria
MK no; # North Macedonia
KR no; # South Korea
MN no; # Mongolia
CV no; # Cabo Verde
LS no; # Lesotho
ET no; # Ethiopia
KH no; # Cambodia
GH no; # Ghana
ML no; # Mali
LY no; # Libya
MM no; # Myanmar
ZA no; # South Africa
RS no; # Serbia
JO no; # Hashemite Kingdom of Jordan
MG no; # Madagascar
IQ no; # Iraq
JP no; # Japan
IR no; # Iran
CM no; # Cameroon
KW no; # Kuwait
NP no; # Nepal
AL no; # Albania
BA no; # Bosnia and Herzegovina
NG no; # Nigeria
SD no; # Sudan
CG no; # Congo Republic
RO no; # Romania
AR no; # Argentina
RW no; # Rwanda
LU no; # Luxembourg
}
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for" '
'"$connection_requests" "$request_time" '
'"$geoip2_data_country_name" "$geoip2_data_country_code" ';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
keepalive_requests 200;
types_hash_max_size 2048;
ssl_session_cache shared:SSL:100m;
ssl_session_timeout 1h;
client_body_buffer_size 16k;
client_header_buffer_size 4k;
client_max_body_size 150m;
client_body_timeout 10;
client_header_timeout 10;
large_client_header_buffers 16 8m;
reset_timedout_connection on;
send_timeout 10;
charset utf-8;
gzip on;
gzip_comp_level 5;
gzip_min_length 256;
gzip_vary on;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
server {
include /etc/nginx/conf.d/bots.cfg;
listen 80;
server_name site4.ru www.site4.ru;
return 301 https://site4.ru$request_uri;
}
server {
include /etc/nginx/conf.d/bots.cfg;
listen 80;
server_name site2.ru www.site2.ru;
return 301 https://site2.ru$request_uri;
}
server {
include /etc/nginx/conf.d/bots.cfg;
listen 80;
server_name site3.ru www.site3.ru;
return 301 https://site3.ru$request_uri;
}
server {
include /etc/nginx/conf.d/bots.cfg;
listen 80;
server_name site.ru www.site.ru ftp.site.ru;
return 301 https://site.ru$request_uri;
}
server {
include /etc/nginx/conf.d/bots.cfg;
listen 80;
server_name spb.site.ru;
return 301 https://spb.site.ru$request_uri;
}
server {
include /etc/nginx/conf.d/bots.cfg;
listen 80;
server_name tver.site.ru;
return 301 https://tver.site.ru$request_uri;
}
server {
include /etc/nginx/conf.d/bots.cfg;
listen 80;
server_name yaroslavl.site.ru;
return 301 https://yaroslavl.site.ru$request_uri;
}
server {
include /etc/nginx/conf.d/bots.cfg;
listen 80;
server_name kaluga.site.ru;
return 301 https://kaluga.site.ru$request_uri;
}
server {
rewrite ^(.*)(\s|%20)$ $1 permanent;
listen 443 ssl http2;
server_name site4.ru www.site4.ru;
ssl_certificate /etc/letsencrypt/live/site4.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/site4.ru/privkey.pem; # managed by Certbot
access_log /var/log/nginx/site4.ru_access.log main;
error_log /var/log/nginx/site4.ru_error.log warn;
root /var/www/site4.ru;
include /etc/nginx/conf.d/bots.cfg;
include /etc/nginx/conf.d/general-config.cfg;
server_tokens off;
location = /favicon.ico {
alias /var/www/site4.ru/wa-data/public/site/data/site4.ru/favicon.ico;
}
location = /apple-touch-icon.png {
alias /var/www/site4.ru/wa-data/public/site/data/site4.ru/apple-touch-icon.png;
}
location = /apple-touch-icon-precomposed.png {
alias /var/www/site4.ru/wa-data/public/site/data/site4.ru/apple-touch-icon-precomposed.png;
}
location = /apple-touch-icon-120x120-precomposed.png {
alias /var/www/site4.ru/wa-data/public/site/data/site4.ru/apple-touch-icon-120x120-precomposed.png;
}
location = /apple-touch-icon-120x120.png {
alias /var/www/site4.ru/wa-data/public/site/data/site4.ru/apple-touch-icon-120x120.png;
}
location = /news/rss/ {
return 404;
}
location ~* ^.+\.(jpg|jpeg|png|gif|ico|css|js|pdf|svg|woff|woff2)$ {
access_log off;
expires 30d;
valid_referers none blocked server_names ~(site4.ru|www.site4.ru);
if ($invalid_referer) {
return 444;
}
}
}
server {
rewrite ^(.*)(\s|%20)$ $1 permanent;
listen 443 ssl http2;
server_name site2.ru www.site2.ru;
ssl_certificate /etc/letsencrypt/live/site2.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/site2.ru/privkey.pem; # managed by Certbot
access_log /var/log/nginx/site2.ru_access.log main;
error_log /var/log/nginx/site2.ru_error.log warn;
root /var/www/site2.ru;
include /etc/nginx/conf.d/bots.cfg;
include /etc/nginx/conf.d/general-config.cfg;
server_tokens off;
location = /favicon.ico {
alias /var/www/site2.ru/wa-data/public/site/data/site2.ru/favicon.ico;
}
location = /apple-touch-icon.png {
alias /var/www/site2.ru/wa-data/public/site/data/site2.ru/apple-touch-icon.png;
}
location = /apple-touch-icon-precomposed.png {
alias /var/www/site2.ru/wa-data/public/site/data/site2.ru/apple-touch-icon-precomposed.png;
}
location = /apple-touch-icon-120x120-precomposed.png {
alias /var/www/site2.ru/wa-data/public/site/data/site2.ru/apple-touch-icon-120x120-precomposed.png;
}
location = /apple-touch-icon-120x120.png {
alias /var/www/site2.ru/wa-data/public/site/data/site2.ru/apple-touch-icon-120x120.png;
}
location = /news/rss/ {
return 404;
}
location ~* ^.+\.(jpg|jpeg|png|gif|ico|css|js|pdf|svg|woff|woff2)$ {
access_log off;
expires 30d;
valid_referers none blocked server_names ~(site2.ru|www.site2.ru);
if ($invalid_referer) {
return 444;
}
}
}
server {
rewrite ^(.*)(\s|%20)$ $1 permanent;
listen 443 ssl http2;
server_name site3.ru www.site3.ru;
ssl_certificate /etc/letsencrypt/live/site3.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/site3.ru/privkey.pem; # managed by Certbot
access_log /var/log/nginx/site3.ru_access.log main;
error_log /var/log/nginx/site3.ru_error.log warn;
root /var/www/site3.ru;
include /etc/nginx/conf.d/bots.cfg;
include /etc/nginx/conf.d/general-config.cfg;
server_tokens off;
location = /favicon.ico {
alias /var/www/site3.ru/wa-data/public/site/data/site3.ru/favicon.ico;
}
location = /apple-touch-icon.png {
alias /var/www/site3.ru/wa-data/public/site/data/site3.ru/apple-touch-icon.png;
}
location = /apple-touch-icon-precomposed.png {
alias /var/www/site3.ru/wa-data/public/site/data/site3.ru/apple-touch-icon-precomposed.png;
}
location = /apple-touch-icon-120x120-precomposed.png {
alias /var/www/site3.ru/wa-data/public/site/data/site3.ru/apple-touch-icon-120x120-precomposed.png;
}
location = /apple-touch-icon-120x120.png {
alias /var/www/site3.ru/wa-data/public/site/data/site3.ru/apple-touch-icon-120x120.png;
}
location = /news/rss/ {
return 404;
}
location ~* ^.+\.(jpg|jpeg|png|gif|ico|css|js|pdf|svg|woff|woff2)$ {
access_log off;
expires 30d;
valid_referers none blocked server_names ~(site3.ru|www.site3.ru);
if ($invalid_referer) {
return 444;
}
}
}
server {
# rewrite ^(.*)//+(.*) $1/$2 permanent;
rewrite ^(.*)(\s|%20)$ $1 permanent;
listen 443 ssl http2;
server_name site.ru www.site.ru ftp.site.ru spb.site.ru tver.site.ru yaroslavl.site.ru kaluga.site.ru;
ssl_certificate /etc/letsencrypt/live/site.ru/fullchain.pem; # managed by Certbot
ssl_certificate_key /etc/letsencrypt/live/site.ru/privkey.pem; # managed by Certbot
access_log /var/log/nginx/site.ru_access.log main;
error_log /var/log/nginx/site.ru_error.log warn;
root /var/www/site.ru;
include /etc/nginx/conf.d/bots.cfg;
include /etc/nginx/conf.d/phpmyadmin.cfg;
include /etc/nginx/conf.d/general-config.cfg;
server_tokens off;
location = /favicon.ico {
alias /var/www/site.ru/wa-data/public/site/data/site.ru/favicon.ico;
}
location = /apple-touch-icon.png {
alias /var/www/site.ru/wa-data/public/site/data/site.ru/apple-touch-icon.png;
}
location = /apple-touch-icon-precomposed.png {
alias /var/www/site.ru/wa-data/public/site/data/site.ru/apple-touch-icon-precomposed.png;
}
location = /apple-touch-icon-120x120-precomposed.png {
alias /var/www/site.ru/wa-data/public/site/data/site.ru/apple-touch-icon-120x120-precomposed.png;
}
location = /apple-touch-icon-120x120.png {
alias /var/www/site.ru/wa-data/public/site/data/site.ru/apple-touch-icon-120x120.png;
}
location = /news/rss/ {
return 404;
}
location ~* ^.+\.(jpg|jpeg|png|gif|ico|css|js|pdf|svg|woff|woff2)$ {
access_log off;
expires 30d;
valid_referers none blocked server_names ~(site.ru|www.site.ru|spb.site.ru|tver.site.ru|yaroslavl.site.ru|kaluga.site.ru|yandex|google|yahoo|bing|rambler|facebook|mail);
if ($invalid_referer) {
return 444;
}
}
}
}
# configuration file /etc/nginx/mime.types:
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
image/png png;
image/svg+xml svg svgz;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/webp webp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
font/woff woff;
font/woff2 woff2;
application/java-archive jar war ear;
application/json json;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.apple.mpegurl m3u8;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/vnd.ms-excel xls;
application/vnd.ms-fontobject eot;
application/vnd.ms-powerpoint ppt;
application/vnd.oasis.opendocument.graphics odg;
application/vnd.oasis.opendocument.presentation odp;
application/vnd.oasis.opendocument.spreadsheet ods;
application/vnd.oasis.opendocument.text odt;
application/vnd.openxmlformats-officedocument.presentationml.presentation
pptx;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
xlsx;
application/vnd.openxmlformats-officedocument.wordprocessingml.document
docx;
application/vnd.wap.wmlc wmlc;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/xspf+xml xspf;
application/zip zip;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream iso img;
application/octet-stream msi msp msm;
audio/midi mid midi kar;
audio/mpeg mp3;
audio/ogg ogg;
audio/x-m4a m4a;
audio/x-realaudio ra;
video/3gpp 3gpp 3gp;
video/mp2t ts;
video/mp4 mp4;
video/mpeg mpeg mpg;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-m4v m4v;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
}
# configuration file /etc/nginx/conf.d/bots.cfg:
if ($http_user_agent ~* adbeat.com/policy|ZmEu|libwww-perl|SemrushBot|DotBot|rogerbot|nmap|nikto|wikto|sf|sqlmap|bsqlbf|acunetix|havij|appscan|wpscan|MJ12bot|ApacheBench|WordPress|DirBuster|perl|python|w3af|WhatWeb|Arachni|XSpider|Hydra|Evasions|visionutils|Synapse|HTTP_Request2|GuzzleHttp|Paros|Synapse|Python-urllib|AhrefsBot|Unknown|Opera/9.80|Mozilla/4.0|Pinterestbot|VelenPublicWebCrawler){
return 406;
}
# configuration file /etc/nginx/conf.d/general-config.cfg:
index index.php;
try_files $uri $uri/ /index.php?$query_string;
location /index.php {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
}
location /install.php {
include /etc/nginx/fastcgi_params;
}
location ~ /(api|cli|wa|test).php {
fastcgi_split_path_info ^(.+\.php)(.*)$;
include /etc/nginx/fastcgi_params;
}
location ~ /(oauth.php|link.php|payments.php) {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ /sm-(callback|mail-autoloader|scripts) {
fastcgi_split_path_info ^(.+\.php)(.*)$;
include /etc/nginx/fastcgi_params;
}
location ^~ /wa-data/protected/ {
internal;
}
location ~ /wa-content {
allow all;
}
location ^~ /(wa-apps|wa-plugins|wa-system|wa-widgets)/.*/(lib|locale|templates)/ {
deny all;
}
location ~* ^/wa-(cache|config|installer|log|system)/ {
return 403;
}
location ~* ^/wa-data/public/contacts/photos/[0-9]+/ {
access_log off;
expires 30d;
error_page 404 = @contacts_thumb;
}
location @contacts_thumb {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_NAME /wa-data/public/contacts/photos/thumb.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/contacts/photos/thumb.php;
}
location ~* ^/wa-data/public/photos/[0-9]+/ {
access_log off;
expires 30d;
error_page 404 = @photos_thumb;
}
location @photos_thumb {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_NAME /wa-data/public/photos/thumb.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/photos/thumb.php;
}
location ~* ^/wa-data/public/shop/products/[0-9]+/ {
access_log off;
expires 30d;
error_page 404 = @shop_thumb;
}
location @shop_thumb {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_NAME /wa-data/public/shop/products/thumb.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/shop/products/thumb.php;
}
location ~* ^/wa-data/public/shop/promos/[0-9]+ {
access_log off;
expires 30d;
error_page 404 = @shop_promo;
}
location @shop_promo {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_NAME /wa-data/public/shop/promos/thumb.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/shop/promos/thumb.php;
}
location ~* ^/wa-data/public/mailer/files/[0-9]+/ {
access_log off;
error_page 404 = @mailer_file;
}
location @mailer_file {
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_NAME /wa-data/public/mailer/files/file.php;
fastcgi_param SCRIPT_FILENAME $document_root/wa-data/public/mailer/files/file.php;
}
# configuration file /etc/nginx/fastcgi_params:
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REQUEST_SCHEME $scheme;
fastcgi_param HTTPS $https if_not_empty;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param COUNTRY_CODE $geoip2_data_country_code;
fastcgi_param COUNTRY_NAME $geoip2_data_country_name;
# PHP only, required if PHP was built with --enable-force-cgi-redirect
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_param REDIRECT_STATUS 600;
fastcgi_read_timeout 3600;
fastcgi_buffers 128 2048k;
fastcgi_buffer_size 2048k;
# configuration file /etc/nginx/conf.d/phpmyadmin.cfg:
location /phpmyadmin {
index index.php;
root /var/www/site.ru/;
location ~ /phpmyadmin(/.*\.php) {
include /etc/nginx/fastcgi_params;
root /usr/share/;
fastcgi_index index.php;
fastcgi_param SERVER_NAME 127.0.0.1;
fastcgi_param SCRIPT_FILENAME /var/www/site.ru/phpmyadmin$1;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /var/www/site.ru/;
}
}
Re: Правило для Nginx
Добавьте это rewrite (.*?)//+(.*) $1/$2 permanent;
И сделайте жесткую перезагрузку nginx restart а не reload.
И в секция http добавьте в самое начало.
merge_slashes off;
И сделайте жесткую перезагрузку nginx restart а не reload.
И в секция http добавьте в самое начало.
merge_slashes off;
Настройка BSD систем
Знание сила, незнание Рабочая сила!
Знание сила, незнание Рабочая сила!
Re: Правило для Nginx
Огромное спасибо!
Помогло и без жесткой перезагрузки даже))
Помогло и без жесткой перезагрузки даже))
Re: Правило для Nginx
Всем доброго дня.
И снова вопрос(
Подскажите пожалуйста как перенаправить URL.
Тут просто не понятно толи нужно вырезать из URL часть? толи сделать 301
https://site.ru/search/?query=поисковой_запрос - Это старый вариант обращения к строке поиска на сайте
https://site.ru/search/поисковой_запрос/ - Это новый вариант обращения к строке поиска на сайте
И снова вопрос(
Подскажите пожалуйста как перенаправить URL.
Тут просто не понятно толи нужно вырезать из URL часть? толи сделать 301
https://site.ru/search/?query=поисковой_запрос - Это старый вариант обращения к строке поиска на сайте
https://site.ru/search/поисковой_запрос/ - Это новый вариант обращения к строке поиска на сайте
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Правило для Nginx
Как-то так, наверное (не проверял):atwooo писал(а): ↑17.02.2021 10:23https://site.ru/search/?query=поисковой_запрос - Это старый вариант обращения к строке поиска на сайте
https://site.ru/search/поисковой_запрос/ - Это новый вариант обращения к строке поиска на сайте
Код: Выделить всё
location = /search/ {
if ($arg_query) {
rewrite ^/search/ /search/$arg_query/? permanent;
}
}
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |
Re: Правило для Nginx
Огромное спасибо!
Работает!
Подскажите пожалуйста - как сделать конфигурацию по умолчанию.
У меня есть блок
В блоке listen 80; я добавил default_server
Итого этот блок теперь выглядет вот так:
Я ожидаю что любое обращение которое не не описано в конфигурации, будет уходить на этот блок.
А именно к примеру у Вас есть какой то домен где вы создаете какую то запись типа А которая к моим сайтам не имеет отношение. При обращении к этому домену должен открыться default_server.
На практике работает это вот так.
Если обращаться по ip (их у сервера 2) то действительно откроется default_server.
А если обратиться по домену которого нет в конфигурации то откроется первый НЕ default_server.
Суть вопроса - как сделать чтоб при любом обращении к серверу который не описан в конфигурации запросы шли в default_server?
Работает!
Добавлено (12:36):
Есть еще такой вопрос.Подскажите пожалуйста - как сделать конфигурацию по умолчанию.
У меня есть блок
Код: Выделить всё
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Итого этот блок теперь выглядет вот так:
Код: Выделить всё
server {
listen 80 default_server;
server_name _ localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
А именно к примеру у Вас есть какой то домен где вы создаете какую то запись типа А которая к моим сайтам не имеет отношение. При обращении к этому домену должен открыться default_server.
На практике работает это вот так.
Если обращаться по ip (их у сервера 2) то действительно откроется default_server.
А если обратиться по домену которого нет в конфигурации то откроется первый НЕ default_server.
Суть вопроса - как сделать чтоб при любом обращении к серверу который не описан в конфигурации запросы шли в default_server?
- Bizdelnick
- Модератор
- Сообщения: 20793
- Статус: nulla salus bello
- ОС: Debian GNU/Linux
Re: Правило для Nginx
Странно. А если вместо 80 указать *:80?
Кстати, какая версия nginx?
Кстати, какая версия nginx?
Пишите правильно:
в консоли вку́пе (с чем-либо) в общем вообще | в течение (часа) новичок нюанс по умолчанию | приемлемо проблема пробовать трафик |