Điểm:0

Chuyển hướng hoạt động, truyền qua không

lá cờ cn

CMS của chúng tôi có một trình xử lý có tên nguồn gốc, hoạt động: http://example.com/root phục vụ, những gì chúng tôi muốn nó phục vụ.

Chúng tôi muốn các yêu cầu cho miền "trần trụi" (http://example.com) sẽ được xử lý bởi cùng một trình xử lý đó một cách tự động -- mà không yêu cầu /nguồn gốc là một phần của yêu cầu.

Những gì tôi mong đợi là "chỉ hoạt động" - kết quả là 404:

RewriteRule ^/*$ /root [L] # Kết quả ở 404

Điều tốt nhất tôi có thể nghĩ ra là chuyển hướng, hiển thị tên nguồn gốc:

RewriteRule ^/*$ /root [R= Permanent,L] # Hoạt động

Làm thế nào tôi có thể làm điều này mà không cần chuyển hướng? Tôi đã thử thêm PT không có kết quả...

lá cờ us
Tôi nghĩ bạn nên thay đổi cấu hình CMS của mình để URL cơ sở được đặt chính xác.Nếu bạn viết lại các URL yêu cầu đến, CMS sẽ vẫn tạo các URL có tiền tố `/root`, nghĩa là cuối cùng bạn sẽ có nội dung trùng lặp.
lá cờ cn
Cảm ơn, nhưng `/root` không phải là một thư mục ở đây -- nó cũng không phải là một tiền tố...
lá cờ us
Vì vậy, thay vào đó, tài nguyên tĩnh và JS được cung cấp từ `/`? Còn các trang khác dưới `/root` thì sao?
lá cờ cn
Một lần nữa, không có "dưới"... Yêu cầu example.com/root phục vụ nội dung. Chúng tôi muốn các yêu cầu ví dụ.com (có hoặc không có dấu gạch chéo) được phục vụ _cùng_ nội dung...
Điểm:1
lá cờ kz
RewriteRule ^/*$ /root [L]

Điều này không sao, tuy nhiên, việc này có hoạt động hay không phụ thuộc vào cách CMS của bạn đọc URL được yêu cầu. CMS rất có thể sẽ đọc URL được yêu cầu ban đầu (được bao gồm trong tiêu đề yêu cầu HTTP), chứ không phải URL đã được ghi nội bộ. Vì vậy, CMS thấy /, không phải /nguồn gốc. Còn nếu không thấy / như một tuyến hợp lệ thì bạn nhận được 404.

Hầu hết các CMS sẽ nghỉ nếu họ đọc URL được viết lại, vì hầu hết các CMS đều sử dụng mẫu bộ điều khiển phía trước và viết lại bên trong tất cả các yêu cầu vào một tập lệnh chung ("bộ điều khiển phía trước"). Việc đọc URL được viết lại trong trường hợp này sẽ không có mục đích gì vì nó sẽ luôn giống nhau (tức là URL của bộ điều khiển phía trước).

Viết lại URL được yêu cầu theo cách này sẽ không hoạt động với WordPress, Joomla, Drupal, v.v.

Chỉ khi CMS của bạn cung cấp cơ chế ghi đè rõ ràng URL được yêu cầu (ví dụ: có thể bằng tham số URL), bạn mới có thể thực hiện việc này ở cấp máy chủ, nếu không, bạn cần định cấu hình tuyến này trong chính CMS. (tức là. Tốt nhất là thay đổi URL/tuyến đường từ /nguồn gốc đến /, thay vì thêm tên này dưới dạng "bí danh", điều này có khả năng gây ra nội dung trùng lặp vấn đề.)

lá cờ cn
Cảm ơn, điều này giải thích tại sao chúng tôi gặp sự cố. Nhưng đối với giải pháp -- bên cạnh việc đào sâu vào các bộ phận bên trong CMS, không có cờ nào cho mod_rewrite, điều đó cũng sẽ thay đổi URL được truyền (không có chuyển hướng)?

Đă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.