ฉันมีไซต์ WordPress ที่มีลิงก์ถาวรตั้งค่าเป็นชื่อโพสต์
การใช้ Nginx rewrite ฉันพยายามเปลี่ยนเส้นทางภายใน (โดยไม่มีการเปลี่ยนแปลงใน URL ของเบราว์เซอร์) แต่จนถึงตอนนี้ ฉันยังทำไม่สำเร็จ
ใช้งานได้ แต่ URL เปลี่ยนไป
ตำแหน่ง ~ ^/u/(.*) {
เขียนใหม่ ^/u/(.*) /p/?username=$1 redirect;
}
ฉันไม่เข้าใจว่าทำไมสิ่งนี้ถึงใช้งานไม่ได้:
ตำแหน่ง ~ ^/u/(.*) {
# สิ่งนี้ส่งคืน 404
เขียนใหม่ ^/u/(.*) /p/?username=$1 สุดท้าย;
}
การกำหนดค่าทั้งหมด
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name example.com;
รูท /srv/www/html;
error_log /var/log/nginx/error.log;
ดัชนี index.php;
สถานที่ = /favicon.ico {
ปิด log_not_found;
access_log off;
}
ตำแหน่ง = /robots.txt {
อนุญาตทั้งหมด
ปิด log_not_found;
access_log off;
}
ตำแหน่ง ~ ^/u/(.*) {
เขียนใหม่ ^/u/(.*) /p/?username=$1 สุดท้าย;
# try_files $uri /p/?ชื่อผู้ใช้=$1;
}
ที่ตั้ง / {
try_files $uri $uri/ /index.php?$args;
}
ตำแหน่ง ~ \.php$ {
client_max_body_size 8M;
รวม fastcgi-php.conf;
# ลดช่องโหว่ https://httpoxy.org/
fastcgi_param HTTP_PROXY "";
เปิด fastcgi_intercept_errors;
fastcgi_pass 0.0.0.0:9000;
}
ตำแหน่ง ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
หมดอายุสูงสุด
ปิด log_not_found;
}
}
ฉันกำลังเขียนปลั๊กอิน WordPress และฉันต้องการให้ผู้ใช้ป้อน URL เช่น https://example.com/u/john71 และเปลี่ยนเส้นทางภายในไปที่ https://example.com/p/?username=john71
ทั้งคู่ ยู และ หน้า เป็นหน้า WordPress และ หน้า มีรหัสย่อที่อนุญาตให้ฉันดึงชื่อผู้ใช้
ฉันสามารถมี https://example.com/p/?username=john71แต่บางอย่างเช่น: https://example.com/u/john71 ดูดีขึ้น
ยินดีรับความช่วยเหลือเกี่ยวกับกฎหรือวิธีการเขียนใหม่