Tôi bị mắc kẹt với một quy tắc viết lại IIS rất đơn giản. Tôi có một loạt liên kết có đường dẫn không hợp lệ và tôi cần chuyển hướng tất cả các yêu cầu tới đường dẫn đó sang một đường dẫn mới.
Đây là con đường bị hỏng: https://documentation.buzsoftware.com/buzdocs/BuzClubManager/index.cfm?ID=690
Phần "buzdocs" của đường dẫn không còn tồn tại và tất cả các liên kết bên dưới đường dẫn này đã được chuyển lên một thư mục vào đường dẫn ví dụ này (hoạt động được): https://documentation.buzsoftware.com/BuzClubManager/index.cfm?ID=690
<rule name="buzdocs_path_del" stopProcessing="true">
<match url="(.*)/buzdocs(.*)" />
<action type="Rewrite" url="{R:1}{R:2}" appendQueryString="false" />
</rule>
hoặc
<rule name="buzdocs_path_del" stopProcessing="true">
<match url="https://documentation.buzsoftware.com/buzdocs(.*)" />
<action type="Rewrite" url="https://documentation.buzsoftware.com/{R:1}" appendQueryString="false" />
</rule>
Tôi đã thử rất nhiều mẫu biểu thức chính quy và mỗi khi tôi đi đến đường dẫn không chính xác, tôi nhận được lỗi 404 và tôi không được chuyển hướng.
Tôi không chắc liệu mình có cần sử dụng ^ (đầu dòng) hay $ (cuối dòng) trong mẫu khớp hay không, tôi đã thử cả hai với cùng một kết quả.
Chỉ sử dụng {R:1} (ví dụ đầu tiên) so với sử dụng cả {R:1} và {R:2} (ví dụ thứ hai), không chắc đâu là cách đúng. Mọi nhận xét về thực tiễn tốt nhất sẽ hữu ích.
Tôi cũng đã nảy qua lại giữa <loại hành động="Viết lại"
và <loại hành động="Chuyển hướng"
, không thay đổi.
Các liên kết này dẫn đến một trang web trực tiếp, vui lòng truy cập chúng. Cảm ơn vì bất kỳ lời khuyên nào, tôi khá chắc chắn rằng mình đang thiếu một thứ gì đó nhỏ và có lẽ tôi sẽ đập đầu vào bàn vì điều đó.