Điểm:0

cố gắng chuyển hướng trong .htaccess trừ khi đó là quản trị viên

lá cờ us

Tôi đang cố gắng viết một quy tắc trong .htaccess để chuyển hướng tất cả /wp-admin đến /đăng nhập TRỪ KHI một người dùng nhất định (Quản trị viên web) đang đăng nhập. Làm cách nào để tạo quy tắc như vậy?

Nếu tôi sử dụng:

Viết lại ^wp-admin /login [R=301,NC,L]

sau đó nó phá vỡ nó bởi vì nó sẽ tiếp tục chuyển hướng đến /đăng nhập, ngay cả đối với quản trị viên vì khi quản trị viên đăng nhập, họ phải xem bảng điều khiển tại /wp-admin

lá cờ in
Làm cách nào để Apache biết được người dùng là ai?
Jed Booth avatar
lá cờ us
Nó không thể. Tôi đang chạy Apache trên máy chủ và hình dung rằng nếu tôi gắn thẻ Apache, nó sẽ mở rộng đối tượng và hầu hết những người là quản trị viên thực sự chạy Apache sẽ thấy điều này và điều đó sẽ dễ dàng đối với họ.
lá cờ in
Nếu Apache không thể phân biệt giữa những người dùng, thì làm sao nó biết khi nào nên chuyển hướng và khi nào thì không?
Điểm:1
lá cờ cn

Có một số cách để làm điều này trong apache, nhưng không có cách nào tuyệt vời cả.

Thay vào đó, cách tốt nhất là làm điều này trong wordpress, hoặc xây dựng một plugin wordpress nhỏ để thay đổi tất cả wp-login.php (vị trí trang đăng nhập) thành /login tùy chỉnh của bạn bằng hook có liên quan: https://developer.wordpress.org/reference/hooks/login_url/

Cách duy nhất để viết lại apache có thể biết nếu ai đó đăng nhập là hỏi wordpress hoặc đọc cookie trực tiếp.

Trước đây, bạn sẽ muốn có một tập lệnh tùy chỉnh chạy từ mô-đun viết lại bằng cách sử dụng chế độ PRG của RewriteMap (https://httpd.apache.org/docs/current/rewrite/rewritemap.html#prg) để chạy tập lệnh PHP truy vấn hệ thống xác thực của wordpress để xem họ đã đăng nhập chưa và viết lại một cách thích hợp.

Bạn cũng có thể kiểm tra trực tiếp giá trị cookie bằng cách sử dụng RewriteCond dựa trên biến HTTP_COOKIE (xem https://httpd.Apache.org/docs/2.0/mod/mod_rewrite.html#RewriteCond)

Tuy nhiên, cả hai đều là những cách hack cực kỳ dễ vỡ và tôi thực sự khuyên bạn nên thực hiện nó trong WP để thay thế.

lá cờ kz
"kiểm tra trực tiếp giá trị cookie" - mặc dù bạn sẽ không thể thực sự _xác thực_ cookie trừ khi bạn sử dụng "tập lệnh tùy chỉnh" như đã đề cập trước đó. Và điều này không xoay quanh vấn đề "con gà và quả trứng"... làm cách nào để đăng nhập "Quản trị viên" ngay từ đầu nếu URL được sử dụng để đăng nhập được chuyển hướng?
lá cờ cn
Bởi vì URL được sử dụng để đăng nhập vào cài đặt wordpress là /wp-login.php, chứ không phải /wp-admin. Mặc dù khi câu hỏi đề cập đến việc chuyển hướng đến/đăng nhập, tôi cho rằng có một phần còn thiếu ở đâu đó.
Điểm:1
lá cờ jp

Bạn có một vấn đề con gà và quả trứng. Bạn không biết người dùng có phải là quản trị viên hay không cho đến khi họ đăng nhập, vì vậy bạn không có thông tin để thực hiện chuyển hướng có điều kiện trước khi đăng nhập.

Jed Booth avatar
lá cờ us
Tôi thích sự tương tự. haha cảm ơn bạn.

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