Điểm:1

Ẩn đường dẫn trong URL của Rocket.Chat với mod_rewrite

lá cờ cn

Tôi đã tìm kiếm một giải pháp cho vấn đề của mình trong nhiều ngày. Thật không may mà không thành công. Trước đây tôi đã thử nhiều ngày hơn nữa và cuối cùng không có giải pháp nào tôi hỏi bạn.

Trên máy chủ Univention của tôi, tôi đã cài đặt ứng dụng "Rocket.Chat". Cái này tự cài đặt dưới dạng bộ chứa Docker.

Tôi đã tạo một tên miền phụ 'chat.example.com' cho Rocket.Chat trỏ đến máy chủ Univention. Để gọi Rocket.Chat tôi phải nhập vào trình duyệt:

https://chat.example.com/rocketchat/home

Tôi không thích điều này. Tôi muốn nó để khi tôi:

https://chat.example.com

Tôi truy cập trực tiếp vào Rocket.Chat. Tôi cũng đã quản lý điều này với MOD_REWRITE. Nhưng sau đó trình duyệt hiển thị URL đầy đủ (https://chat.example.com/rocketchat/home) lần nữa.

Để ngăn chặn điều này, tôi đã thử như sau:

RewriteEngine bật
RewriteCond %{HTTP_HOST} ^chat.example.com$ [NC]
RewriteRule ^/(.*)$ /rocketchat/home/ [P,L]

Tôi đang phạm sai lầm ở đâu?

Tốt nhất

Điểm:0
lá cờ kz
RewriteCond %{HTTP_HOST} ^chat.example.com$ [NC]
RewriteRule ^/(.*)$ /rocketchat/home/ [P,L]

Một vài truy vấn với điều này:

  • Tại sao bạn lại sử dụng P lá cờ? Điều này sử dụng mod_proxy để Ủy quyền yêu cầu?
  • Điều này phù hợp mọi URL và viết lại thành một URL duy nhất? Ví dụ của bạn chỉ đề cập đến việc viết lại gốc mà thôi?
  • Ví dụ của bạn không bao gồm dấu gạch chéo ở cuối mục tiêu, nhưng bạn đã bao gồm dấu gạch chéo ở cuối quy tắc này? Là Trang Chủ một thư mục con vật lý?

Thay vào đó, hãy thử cách sau, giả sử quy tắc này nằm trong người phục vụ (hoặc Máy chủ ảo) bối cảnh:

RewriteCond %{HTTP_HOST} ^chat\.example\.com [NC]
RewriteRule ^/$ /rocketchat/home/ [L]

Tuy nhiên, điều này có hoạt động hay không vẫn có thể phụ thuộc vào chính ứng dụng trò chuyện.

Điểm:0
lá cờ cn

Để kiểm tra trạng thái của Rocket.Chat, tôi có thể nhập thông tin sau trên máy chủ Univention.

root@gw01:~# curl -i http://127.0.0.1:40001/rocketchat/api/info
HTTP/1.1 200 OK
Bảo vệ X-XSS: 1
X-Content-Type-Options: nosniff
X-Frame-Options: sameorigin
Chính sách bảo mật nội dung: default-src 'self' ; kết nối-src *; font-src 'tự' dữ liệu:; khung-src *; img-src * dữ liệu:; phương tiện-src * dữ liệu:; script-src 'self' 'unsafe-eval' ; style-src 'self' 'unsafe-inline' 
X-Instance-ID: QkBHePxDKXAd2ZaNk
Kiểm soát bộ đệm: không lưu trữ
Pragma: không có bộ đệm
loại nội dung: ứng dụng/json
kiểm soát truy cập-cho phép-xuất xứ: *
kiểm soát truy cập-cho phép-tiêu đề: Nguồn gốc, X-Requested-With, Loại nội dung, Chấp nhận, X-User-Id, X-Auth-Token
Thay đổi: Chấp nhận-Mã hóa
Ngày: Thứ bảy, ngày 19 tháng 2 năm 2022 10:54:44 GMT
Kết nối: giữ nguyên
Keep-Alive: timeout=5
Mã hóa truyền: chunked

{"phiên bản":"3.18.2","success":true}

Có thể điều này sẽ giúp?

Điểm:0
lá cờ cn

Cảm ơn đã hỗ trợ! Tôi đang trong quá trình cố gắng để hiểu mod_rewrite. Tôi vừa xem tài liệu apache trên mod_proxy. Tôi đoán rằng tôi không cần P gắn cờ vì tôi chỉ muốn viết lại URL.

Nếu tôi hiểu tài liệu một cách chính xác, ví dụ như tôi đã làm: P cờ không có "ProxyPass" và "ProxyPassĐảo ngược"Cũng không có ý nghĩa gì, phải không?

Với "thư mục gốc", ý bạn là ứng dụng hoặc máy chủ web hoặc VHOST được định cấu hình ở đó? Rốt cuộc, đó là trong một thùng chứa Docker. Hoặc theo "thư mục gốc", ý bạn là VHOST "bên ngoài" Docker, tức là trên máy chủ Univention mà tôi đang cố định cấu hình ở đây ngay bây giờ?

Vì vậy, tôi cần chuẩn bị trước "\" trước mỗi mục trong viết lạiđiều kiện?

Tôi không biết "nhà" có phải là một thư mục vật lý hay không. Tôi chỉ thấy nó là kết quả trong trình duyệt. Tôi đã mở vỏ của bộ chứa Docker nhưng tôi không tìm thấy bất kỳ cấu hình máy chủ web nào ở đó.

Sau đó tôi đã thử nó như sau. Một lần với...Trang Chủ/ và với ..Trang Chủ.

Kết quả luôn giống nhau:

Không tìm thấy Không tìm thấy URL được yêu cầu trên máy chủ này.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.