Tôi có một trang web WordPress với permalinks được đặt thành Tên bài đăng.
Sử dụng Nginx viết lại, tôi đang cố gắng chuyển hướng nội bộ (không thay đổi URL trình duyệt), nhưng cho đến nay, tôi vẫn thất bại.
Điều này hoạt động, nhưng URL thay đổi
vị trí ~ ^/u/(.*) {
viết lại ^/u/(.*) /p/?username=$1 chuyển hướng;
}
Tôi không hiểu tại sao điều này không hoạt động:
vị trí ~ ^/u/(.*) {
# cái này trả về 404
viết lại ^/u/(.*) /p/?username=$1 last;
}
Toàn bộ cấu hình
người phục vụ {
nghe 80;
nghe [::]:80;
server_name example.com;
gốc/srv/www/html;
error_log /var/log/nginx/error.log;
chỉ số index.php;
vị trí = /favicon.ico {
log_not_found tắt;
truy cập_đăng xuất;
}
vị trí = /robots.txt {
chấp nhận tất cả;
log_not_found tắt;
truy cập_đăng xuất;
}
vị trí ~ ^/u/(.*) {
viết lại ^/u/(.*) /p/?username=$1 last;
# try_files $uri /p/?username=$1;
}
địa điểm / {
try_files $uri $uri/ /index.php?$args;
}
vị trí ~ \.php$ {
client_max_body_size 8M;
bao gồm fastcgi-php.conf;
# Giảm thiểu lỗ hổng https://httpoxy.org/
fastcgi_param HTTP_PROXY "";
bật fastcgi_intercept_errors;
fastcgi_pass 0.0.0.0:9000;
}
vị trí ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
hết hạn tối đa;
log_not_found tắt;
}
}
Tôi đang viết một plugin WordPress và tôi muốn người dùng nhập các URL như https://example.com/u/john71 và chuyển hướng nội bộ đến https://example.com/p/?username=john71
Cả hai bạn và P là các trang WordPress và P chứa một mã ngắn cho phép tôi truy xuất tên người dùng.
tôi có thể có https://example.com/p/?username=john71, nhưng đại loại như: https://example.com/u/john71 trông tốt hơn.
Mọi trợ giúp về quy tắc viết lại hoặc cách tiếp cận đều được hoan nghênh.