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;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
bao gồm /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
đị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;
}
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;
}
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_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;
}
nếu ($host = example.com) {
trả lại 301 https://$host$request_uri;
}
server_name example.com www.example.com;
nghe 80;
trả lại 404;
}