Điểm:0

Chuyển hướng đường dẫn URL đến một hành động trên chỉ mục?

lá cờ in

Tôi đang chạy một máy chủ web apache trên Ubuntu 20.04.

tôi có một tên miền.com hướng khách hàng đến index.html. Trên trang web có một nút mà khi được nhấp vào sẽ mở tiện ích bật lên theo lịch. Tôi muốn những người đi đến tên miền.com/schedule đến trang chỉ mục như thể họ đã nhấp vào nút đó.

Làm thế nào tôi có thể làm điều đó một cách đơn giản?

Điểm:3
lá cờ es

Bạn chắc chắn cần kích hoạt cửa sổ bật lên ở phía máy khách. Đây là một mẫu nhanh mà bạn có thể dễ dàng thử và điều chỉnh (và bảo mật) theo nhu cầu của mình:

<html>
  <head>
      <script type="text/javascript">
        function isScheduleRequested() {
        if(window.location.href.includes('/schedule')) {
          document.getElementById('button').click();
        }
      }
      </script>
  </head>
  <body onload='isScheduleRequested();'>
      <button type="button" name="button" id="button" onclick="alert('Opening calendar');">Open calendar</button>
  </body>
</html>

Nói chung, điều này làm là kiểm tra xem URL của trang hiện tại có chứa chuỗi con '/schedule'' hay không (ở bất kỳ đâu, không nhất thiết phải ở cuối, thậm chí không chỉ một lần) và nếu có, hãy gọi nút nhấp chuột biến cố.

Các onload='isScheduleRequested(); bit chỉ để đảm bảo rằng tập lệnh javascript được thực thi sau khi nội dung được tải (và phần tử nút tồn tại).

Bạn thậm chí có thể thử điều này trên máy tính của bạn. Lưu mã này dưới dạng "index.html" và mở nó bằng trình duyệt của bạn. Sẽ không có gì xảy ra cho đến khi bạn nhấp vào nút.Tuy nhiên nếu bạn thêm ?q=/lịch trình vào URI, sự kiện "nhấp chuột" của nút sẽ được kích hoạt. (Trong ví dụ này, chúng ta cần truyền /lịch trình chuỗi dưới dạng một phần của tham số GET, vì không có tên miền, máy chủ cũng như bất kỳ thứ gì lạ mắt được thiết lập.).

donkey avatar
lá cờ in
Đây là một khởi đầu tuyệt vời nhưng nó chỉ hoạt động với domain.com?q=/schedule trong khi tôi muốn nó hoạt động với domain.com/schedule. Tuy nhiên, hiện tại khi tôi truy cập domain.com/schedule thì nó báo chính xác là không có thư mục nào như vậy. Làm cách nào tôi có thể chuyển hướng đó đến index.html của mình?
lá cờ es
Giải pháp đơn giản nhất mà tôi có thể nghĩ đến là xác định bí danh.Một cái gì đó như `Alias ​​/schedule "/var/www/"`, trong đó `/var/www/` là DocumentRoot hiện tại của bạn sẽ hoạt động. Về cơ bản, nó gọi cùng một chỉ mục thư mục, mặc dù bạn nên cẩn thận với tất cả các đường dẫn tương đối của mình.
donkey avatar
lá cờ in
Tôi sẽ xác định bí danh đã nói ở đâu?
lá cờ es
Trong _httpd.conf_ của bạn hoặc trong tệp _conf_ của máy chủ ảo của bạn, tốt nhất là trước tệp tương ứng tiết diện. Ví dụ: ``Bí danh "/schedule" "/var/www" Tùy chọn Chỉ mục FollowSymLinks AllowOverride All Yêu cầu tất cả cấp ``
Điểm:0
lá cờ in

Tại máy chủ Apache, bạn có thể tạo viết lại quy tắc để hiển thị cùng một index.html từ một đường dẫn khác, nhưng việc hiển thị tiện ích bật lên là điều bạn phải giải quyết ở phía ứng dụng (ví dụ: JavaScript có thể sử dụng URL API Web.tên đường dẫn để phát hiện truy cập vào tên miền.com/schedule URL). Khi ứng dụng của bạn phát hiện người dùng đó đã truy cập tên miền.com/schedule (dựa trên tên đường dẫn), nó có thể gọi hành động mở tiện ích bật lê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.