Am un site WordPress cu permalink-uri setate la Post name.
Folosind rescrierea Nginx, încerc să am o redirecționare internă (fără nicio modificare a adresei URL a browserului), dar până acum nu reușesc.
Funcționează, dar URL-ul se modifică
locație ~ ^/u/(.*) {
rescrie ^/u/(.*) /p/?username=$1 redirecționare;
}
Nu înțeleg de ce nu funcționează:
locație ~ ^/u/(.*) {
# aceasta returnează 404
rescrie ^/u/(.*) /p/?username=$1 ultimul;
}
Toată configurația
Server {
asculta 80;
asculta [::]:80;
nume_server example.com;
rădăcină /srv/www/html;
error_log /var/log/nginx/error.log;
index index.php;
locație = /favicon.ico {
log_not_found off;
access_log off;
}
locație = /robots.txt {
permite totul;
log_not_found off;
access_log off;
}
locație ~ ^/u/(.*) {
rescrie ^/u/(.*) /p/?username=$1 ultimul;
# try_files $uri /p/?username=$1;
}
Locație / {
try_files $uri $uri/ /index.php?$args;
}
locație ~ \.php$ {
client_max_body_size 8M;
includ fastcgi-php.conf;
# Reduceți vulnerabilitățile https://httpoxy.org/
fastcgi_param HTTP_PROXY "";
fastcgi_intercept_errors activat;
fastcgi_pass 0.0.0.0:9000;
}
locație ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expira max;
log_not_found off;
}
}
Scriu un plugin WordPress și vreau ca utilizatorii să introducă adrese URL, cum ar fi https://example.com/u/john71 și redirecționează intern către https://example.com/p/?username=john71
Ambii u și p sunt pagini WordPress și p conține un cod scurt care îmi permite să recuperez numele de utilizator.
as putea avea https://example.com/p/?username=john71, dar ceva de genul: https://example.com/u/john71 arata mai bine.
Orice ajutor cu privire la regula sau abordarea de rescriere este binevenit.