2016-10-06 24 views
6

Tôi vừa cài đặt ColdFusion 2016 (nâng cấp từ CF10) và tôi nhận thấy rằng bất cứ khi nào tôi thử và truy cập một thư mục trong webroot của tôi gọi là 'api', tôi gặp lỗi 500 nội bộ.ColdFusion 2016: Bạn có thể có một thư mục trong thư mục gốc của trang web có tên là 'api' hoặc 'rest' không?

Ví dụ: www.mysite.com/api/

Tôi giả định này có cái gì để làm với các dịch vụ REST ColdFusion API mới vì vậy tôi đã tạo ra một thư mục có tên 'nghỉ ngơi', thực hiện các thử nghiệm tương tự (www. mysite.com/rest/) và nhận thêm 500 lỗi khác.

Xem các lỗi ảnh chụp màn hình IIS: enter image description here

Điều kỳ lạ là tôi không sử dụng các dịch vụ ColdFusion REST và tôi không có nó cho phép trong ColdFusion Administrator.

Câu hỏi của tôi:

Bạn có được phép có tên thư mục trong thư mục gốc web của bạn có tên là "api" hoặc "nghỉ ngơi" nữa? Hoặc là những tên thư mục được đặt trước này? Có cách nào khác để tắt tính năng này cho một trang web cụ thể để tôi có thể sử dụng các tên thư mục này không?

Trả lời

11

Saw này trên Adobe đàn mà nên trả lời câu hỏi của bạn:

Lý do bạn không thể truy cập/api/hoặc/nghỉ ngơi/là bởi vì có một servlet-mapping cf cho các thư mục.

Bạn có thể xóa ánh xạ bằng cách truy cập cfinstall/cfusion/wwwroot/WEB-INF/web.xml. Tìm kiếm api servlet-mapping và nhận xét nó.

Dường như không có cách nào để thực hiện việc này cho một trang web cụ thể ngoài việc sử dụng viết lại IIS để chuyển hướng lưu lượng truy cập đến thư mục khác. Một cái gì đó như thế này nên làm việc (chuyển hướng giao thông từ/api/to/api2 /):

<rule name="Redirect" stopProcessing="true"> 
    <match url="^api$|^api/(.*)" /> 
    <action type="Rewrite" url="api2/{R:1}" appendQueryString="true" /> 
</rule> 

nếu có ai biết một cách để vô hiệu hóa này cho một trang web cụ thể mà không sửa đổi web.config xin vui lòng chia sẻ ý tưởng của bạn.

Các vấn đề liên quan