Tôi có một trang web WordPress nơi các URL của tôi hiện được viết như sau
http://example.com/for-sale/12345-aaa-123-street-bbb-city/
và tôi vẫn muốn phân phối cùng một URL, nhưng tôi muốn URL trông giống như
http://example.com/city/street/
Tôi đã tạo một quy tắc viết lại của viết lại để bán/([0-9]+)-aaa-(.*)-bbb-(.*) /$3/$2/ vĩnh viễn;
Điều này viết lại URL của tôi nhưng trả về lỗi 404. Đây là những gì nhật ký viết lại trả về
04/11/2021 04:48:39 [thông báo] 23077#23077: *4643 chuyển hướng được viết lại: "/Vernon//539-Apache-County-Road-3144/", máy khách: 108.162.215.21, máy chủ: example.com , yêu cầu: "GET /for-sale/20071-aaa-539-Apache-County-Road-3144-bbb-Vernon/ HTTP/1.1", máy chủ lưu trữ: "example.com", liên kết giới thiệu: "https://example. com/vernon/"
04/11/2021 04:48:40 [thông báo] 23077#23077: *4646 "để bán/([0-9]+)-aaa-(.*)-bbb-(.*)" khớp "/ để bán/14808-aaa-35640A-Hwy-60-bbb-Vernon/", khách hàng: 172.70.98.47, máy chủ: example.com, yêu cầu: "GET /for-sale/14808-aaa-35640A-Hwy-60 -bbb-Vernon/ HTTP/1.1", máy chủ lưu trữ: "example.com", liên kết giới thiệu: "https://example.com/vernon/"
2021/11/04 04:48:40 [thông báo] 23077#23077: *4646 chuyển hướng được viết lại: "/Vernon//35640A-Hwy-60/", máy khách: 172.70.98.47, máy chủ: example.com, yêu cầu: " NHẬN /for-sale/14808-aaa-35640A-Hwy-60-bbb-Vernon/ HTTP/1.1", máy chủ lưu trữ: "example.com", liên kết giới thiệu: "https://example.com/vernon/"
2021/11/04 04:48:41 [thông báo] 23077#23077: *4649 "để bán/([0-9]+)-aaa-(.*)-bbb-(.*)" không khớp "/for-sale/19617-2926-DEER-HILL-Road-Heber-Arizona-85928/", khách hàng: 108.162.245.49, máy chủ: example.com, yêu cầu: "GET /for-sale/19617-2926-DEER -HILL-Road-Heber-Arizona-85928/ HTTP/1.1", máy chủ lưu trữ: "example.com"
04/11/2021 04:48:41 [thông báo] 23077#23077: *4651 "để bán/([0-9]+)-aaa-(.*)-bbb-(.*)" khớp "/ để bán/6944-aaa-35640-Hwy-60-bbb-Vernon/", khách hàng: 172.69.35.180, máy chủ: example.com, yêu cầu: "NHẬN /để bán/6944-aaa-35640-Hwy-60 -bbb-Vernon/ HTTP/1.1", máy chủ lưu trữ: "example.com", liên kết giới thiệu: "https://example.com/vernon/"
2021/11/04 04:48:41 [thông báo] 23077#23077: *4651 chuyển hướng được viết lại: "/Vernon//35640-Hwy-60/", máy khách: 172.69.35.180, máy chủ: example.com, yêu cầu: " GET /for-sale/6944-aaa-35640-Hwy-60-bbb-Vernon/ HTTP/1.1", máy chủ lưu trữ: "example.com", liên kết giới thiệu: "https://example.com/vernon/"
04/11/2021 04:48:42 [thông báo] 23077#23077: *4654 "để bán/([0-9]+)-aaa-(.*)-bbb-(.*)" khớp "/ để bán/18232-aaa-72-County-Road-8144-bbb-Vernon/", khách hàng: 172.172.35.168, máy chủ: example.com, yêu cầu: "GET /for-sale/18232-aaa-72-County -Road-8144-bbb-Vernon/ HTTP/1.1", máy chủ lưu trữ: "example.com", liên kết giới thiệu: "https://example.com/vernon/"
04/11/2021 04:48:42 [thông báo] 23077#23077: *4654 chuyển hướng được viết lại: "/Vernon//72-County-Road-8144/", máy khách: 172.172.35.168, máy chủ: example.com, yêu cầu : "NHẬN /for-sale/18232-aaa-72-County-Road-8144-bbb-Vernon/ HTTP/1.1", máy chủ lưu trữ: "example.com", liên kết giới thiệu: "https://example.com/vernon/ "
Tôi không chắc liệu mình có đang đi đúng hướng ở đây hay quy tắc viết lại có sai khi sử dụng trong trường hợp này không? Tôi đã thử đặt quy tắc viết lại vào vị trí của chính nó và đã thử các cờ khác nhau nhưng đây là lần gần nhất tôi có cho đến nay.
Đây là cấu hình đầy đủ của tôi. Cảm ơn vì bất kì sự giúp đỡ.
người phục vụ {
server_name example.com www.example.com;
access_log /var/www/example.com/logs/access.log;
error_log /var/www/example.com/logs/error.log;
viết lại_log vào;
gốc /var/www/example.com/public;
chỉ số index.php;
nghe 443 ssl http2; # được quản lý bởi Certbot
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # được quản lý bởi Certbot
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # được quản lý bởi Certbot
bao gồm /etc/letsencrypt/options-ssl-nginx.conf; # được quản lý bởi Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # được quản lý bởi Certbot
địa điểm / {
viết lại để bán/([0-9]+)-aaa-(.*)-bbb-(.*) /$3/$2/ vĩnh viễn;
try_files $uri $uri/ /index.php?$args;
}
#nhanhcgi
vị trí ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
bao gồm fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param bật HTTPS;
fastcgi_param HTTP_SCHEME https;
fastcgi_read_timeout 150;
}
#Cache các tệp tĩnh càng lâu càng tốt
vị trí ~*.(ogg|ogv|svg|svgz|eot|otf|woff|woff2|mp4|ttf|css|rss|atom|js|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar |bz)$ { hết hạn 365d;
}
vị trí ~ ^/(wp-admin|wp-login|ngx_pagespeed_statistics|ngx_pagespeed_global_statistics|ngx_pagespeed_message)$ { #auth_basic "Riêng tư";
auth_basic_user_file /usr/local/nginx/conf/.htpasswd;
}
vị trí ~* /wp-gồm/.*.php$ {
Phủ nhận tất cả;
truy cập_đăng xuất;
log_not_found tắt;
}
vị trí ~* /wp-content/.*.php$ {
Phủ nhận tất cả;
truy cập_đăng xuất;
log_not_found tắt;
}
}
người phục vụ {
nếu ($host = www.example.com) {
trả lại 301 https://$host$request_uri;
} # được quản lý bởi Certbot
nếu ($host = example.com) {
trả lại 301 https://$host$request_uri;
} # được quản lý bởi Certbot
server_name example.com www.example.com;
nghe 80;
trả lại 404; # được quản lý bởi Certbot
}