Am un site web WordPress unde URL-urile mele sunt scrise în prezent după cum urmează
http://example.com/for-sale/12345-aaa-123-street-bbb-city/
și aș dori să difuzez în continuare aceeași adresă URL, dar vreau ca adresa URL să arate ca
http://example.com/city/street/
Am creat o regulă de rescriere a rescrie de vânzare/([0-9]+)-aaa-(.*)-bbb-(.*) /$3/$2/ permanent;
Aceasta îmi rescrie adresa URL, dar returnează o eroare 404. Iată ce returnează jurnalul de rescriere
2021/11/04 04:48:39 [notificare] 23077#23077: *4643 redirecționare rescrisă: „/Vernon//539-Apache-County-Road-3144/”, client: 108.162.215.21, server: exemplu. , cerere: „GET /for-sale/20071-aaa-539-Apache-County-Road-3144-bbb-Vernon/ HTTP/1.1”, gazdă: „example.com”, referitor: „https://example. com/vernon/"
2021/11/04 04:48:40 [notificare] 23077#23077: *4646 „de vânzare/([0-9]+)-aaa-(.*)-bbb-(.*)” se potrivește cu „/ de vânzare/14808-aaa-35640A-Hwy-60-bbb-Vernon/", client: 172.70.98.47, server: example.com, cerere: „GET /for-sale/14808-aaa-35640A-Hwy-60 -bbb-Vernon/ HTTP/1.1”, gazdă: „example.com”, referitor: „https://example.com/vernon/”
2021/11/04 04:48:40 [notificare] 23077#23077: *4646 redirecționare rescrisă: „/Vernon//35640A-Hwy-60/”, client: 172.70.98.47, server: example.com, cerere: „ GET /for-sale/14808-aaa-35640A-Hwy-60-bbb-Vernon/ HTTP/1.1", gazdă: „example.com”, referitor: „https://example.com/vernon/”
2021/11/04 04:48:41 [notificare] 23077#23077: *4649 „de vânzare/([0-9]+)-aaa-(.*)-bbb-(.*)” nu se potrivește „/for-sale/19617-2926-DEER-HILL-Road-Heber-Arizona-85928/”, client: 108.162.245.49, server: example.com, cerere: „GET /for-sale/19617-2926-DEER -HILL-Road-Heber-Arizona-85928/ HTTP/1.1”, gazdă: „example.com”
2021/11/04 04:48:41 [notificare] 23077#23077: *4651 „de vânzare/([0-9]+)-aaa-(.*)-bbb-(.*)” se potrivește cu „/ de vânzare/6944-aaa-35640-Hwy-60-bbb-Vernon/", client: 172.69.35.180, server: example.com, cerere: „GET /for-sale/6944-aaa-35640-Hwy-60 -bbb-Vernon/ HTTP/1.1”, gazdă: „example.com”, referitor: „https://example.com/vernon/”
2021/11/04 04:48:41 [notificare] 23077#23077: *4651 redirecționare rescrisă: „/Vernon//35640-Hwy-60/”, client: 172.69.35.180, server: example.com, cerere: „ GET /for-sale/6944-aaa-35640-Hwy-60-bbb-Vernon/ HTTP/1.1", gazdă: "example.com", referitor: "https://example.com/vernon/"
2021/11/04 04:48:42 [notificare] 23077#23077: *4654 „de vânzare/([0-9]+)-aaa-(.*)-bbb-(.*)” se potrivește cu „/ de vânzare/18232-aaa-72-County-Road-8144-bbb-Vernon/", client: 172.172.35.168, server: example.com, cerere: „GET /for-sale/18232-aaa-72-County -Road-8144-bbb-Vernon/ HTTP/1.1”, gazdă: „example.com”, referitor: „https://example.com/vernon/”
2021/11/04 04:48:42 [notificare] 23077#23077: *4654 redirecționare rescrisă: „/Vernon//72-County-Road-8144/”, client: 172.172.35.168, server: example.com, cerere : „GET /for-sale/18232-aaa-72-County-Road-8144-bbb-Vernon/ HTTP/1.1”, gazdă: „example.com”, referitor: „https://example.com/vernon/ "
Nu sunt sigur dacă mă îndrept pe calea cea bună aici sau este greșită să fie folosită o regulă de rescriere în acest scenariu? Am încercat să plasez regula de rescrire în propria locație și am încercat diferite steaguri, dar acesta este cel mai aproape pe care l-am avut până acum.
Aici este configurația mea completă. Multumesc pentru orice ajutor.
Server {
nume_server example.com www.example.com;
access_log /var/www/example.com/logs/access.log;
error_log /var/www/example.com/logs/error.log;
rewrite_log on;
root /var/www/example.com/public;
index index.php;
asculta 443 ssl http2; # gestionat de Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # gestionat de Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # gestionat de Certbot
includ /etc/letsencrypt/options-ssl-nginx.conf; # gestionat de Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # gestionat de Certbot
Locație / {
rescrie de vânzare/([0-9]+)-aaa-(.*)-bbb-(.*) /$3/$2/ permanent;
try_files $uri $uri/ /index.php?$args;
}
# fastcgi
locație ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS activat;
fastcgi_param HTTP_SCHEME https;
fastcgi_read_timeout 150;
}
#Cache fișiere statice cât mai mult posibil
locație ~*.(ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar |bz)$ { expiră 365d;
}
locație ~ ^/(wp-admin|wp-login|ngx_pagespeed_statistics|ngx_pagespeed_global_statistics|ngx_pagespeed_message)$ { #auth_basic „Privat”;
auth_basic_user_file /usr/local/nginx/conf/.htpasswd;
}
locație ~* /wp-includes/.*.php$ {
nega totul;
access_log off;
log_not_found off;
}
locație ~* /wp-content/.*.php$ {
nega totul;
access_log off;
log_not_found off;
}
}
Server {
dacă ($gazdă = www.example.com) {
returnează 301 https://$host$request_uri;
} # gestionat de Certbot
dacă ($gazdă = exemplu.com) {
returnează 301 https://$host$request_uri;
} # gestionat de Certbot
nume_server example.com www.example.com;
asculta 80;
întoarce 404; # gestionat de Certbot
}