intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Căn bản về SSI trên Apache

Chia sẻ: Vietnam 9h | Ngày: | Loại File: DOC | Số trang:3

89
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Trong khi các file HTML chuẩn dùng cho lưu giữ các trang rất tốt, thì khả năng tạo ra một số nội dung động của nó cũng rất đáng hoan nghênh. Lấy ví dụ, đưa thêm vào một footer hay một header vào tất cả các file, hoặc là đưa vào thông tin về tài liệu ví như thời gian sửa đổi gần nhất một cách tự động. Điều này có thể thực hiện bằng CGI được, nhưng nó lại đòi hỏi những kĩ năng lập trình hoặc viết mã kịch bản mà vấn đề đó thì không hề đơn...

Chủ đề:
Lưu

Nội dung Text: Căn bản về SSI trên Apache

  1. Căn bản về SSI trên Apache :  trang này đã được đọc  lần  Using Server Side Includes  Trong khi các file HTML chuẩn dùng cho lưu giữ các trang rất tốt, thì khả năng tạo ra một số nội  dung động của nó cũng rất đáng hoan nghênh. Lấy ví dụ, đưa thêm vào một footer hay một  header vào tất cả các file, hoặc là đưa vào thông tin về tài liệu ví như thời gian sửa đổi gần nhất  một cách tự động. Điều này có thể thực hiện bằng CGI được, nhưng nó lại đòi hỏi những kĩ năng  lập trình hoặc viết mã kịch bản mà vấn đề đó thì không hề đơn giản. Đối với những trang tài liệu  động đơn giản thì chúng ta có một giải pháp thay thế khác: đó là các nội dung đưa vào từ máy  chủ (SSI). Bài này là một trong loạt bài về SSI do chúng tôi biên soạn, với các mức độ khác nhau  về cú pháp. Nếu các bạn muốn theo dõi về chủ đề này xin đến với Diễn dàn Công nghệ thông tin  VN http://cnttvn.cjb.net/ SSI cho phép bạn gắn kèm một số câu lệnh đặc biệt vào trong chính trang HTML. Khi mà server  đọc một tài liệu có chứa SSI, nó sẽ tìm kiếm các câu lệnh này và thực hiện các hành động cần  thiết. Ví dụ, có một câu lệnh SSI thực hiện chức năng nhập vào thời gian sửa đổi gần nhất của tài  liệu. Khi server đọc được một file có dòng lệnh này trong đó, nó sẽ thay thế dòng lệnh bằng thời  gian thích hợp.  Apache có chứa một tập hợp các câu lệnh SSI dựa theo một số câu lệnh có trong máy chủ NCSA  cộng với nhiều câu lệnh mở rộng khác. Điều này được thực hiện với the includes module  (mod_includes). (Bạn có thể hiểu là một chương trình có chức năng tổng hợp) Telling Apache to Use SSI Theo mặc định thì máy chủ không hơi đâu mà đi tìm trong các file HTML xem có các câu lệnh  SSI hay không. Điều này làm giảm tốc độ mọi lần truy cập đến một file HTML. Để sử dụng SSI  bạn cần báo cho Apache biết là các tài liệu nào thì có chứa các câu lệnh SSI.  Một cách để làm được điều này là dùng một file có phần mở rộng đặc biệt. Thường thì người ta  dùng .shtml, và nó có thể được lên cấu hình (configured) cùng với cái directive tức cái lời hướng  dẫn này:  AddHandler server­parsed .shtml AddType text/html shtml Chỉ thị AddHandler bảo cho Apache biết cách xử lý mọi file .shtml như là một loại mà có chứa các  câu lệnh SSI. Chỉ thị AddType thì thực hiện cái điều là làm cho các nội dung được xử lý ấy được  đánh dấu như là HTML để trình duyệt hiển thị nó một cách chính xác. 
  2. Một phương pháp thay thế khác để thông báo cho server biết file nào là có chứa các câu lênh SSI  là sử dụng cái gọi là XBitHack. Cái này liên quan đến việc thiết lập the execute bit mà tôi tạm dịch  là bit thực thi trên các file HTML. Bất cứ một file này có loại nội dung (content type) là text/html (ví  dụ có phần mở rộng là .html) và có chứa một tập hợp bit thực thi thì sẽ được kiểm tra xem có chứa  các câu lệnh SSI hay không. Để làm điều này thì cần phải đưa vào chỉ thị XBitHack .  Trong cả hai phương pháp thì server cũng cần phải được lên cấu hình để cho phép dùng các câu  lệnh SSI. Điieù này đượct hực hiện với chỉ thị Options Includes , cái này cần được đặt trong hoặc  là tệp tin toàn cục mang tên access.conf (the global access.conf) hoặc là tệp tin địa phương  .htaccess (local .htaccess) (mặc dầu là cái thứ hai bắt buộc phải được enabled bằng chỉ thị  AllowOverride Options). Bởi vì một số câu lệnh SSI cho phép dùng các chương trình thực thi mà  có thể mang tới rủi ro về vấn đề security, nên có một giải pháp thay thế tùy chọn,  IncludesNOExec cho phép các câu lệnh SSI đều thực hiện được ngoại trừ những câu lệnh nào  thực thi một chương trình.  SSI Commands Tất cả các câu lệnh SSI được lưu giữ trong file HTML bằng các kí hiệu ghi chú của HTML. Một  câu lệnh SSI bình thường trông giống như thế này:  Trong trường hợp này câu lệnh là flastmod, nó có nghĩa là đưa ra thông tin là thời gian sửa đổi  gần nhất của file đó. Các đối số (argument) xác định cụ thể file đó là "this.html" (đây là tên của  file có chứa câu lệnh này). Toàn bộ phần viết ra câu lệnh, mà được chứa trong kí hiệu đánh dấu  phần chú thích ãe được thay thế bằng kết quả của câu lệnh này. Nói chung thì tất cả các câu lệnh đều có cái format tức cái công thức như sau:  trong đó arg1, arg2, vân vân là các cái tên của các đối số và value1, value2 vân vân là các giá trị  của các đối số đó. Trong ví dụ về flastmod, đối số là 'file' và giá trị của nó là 'this.html'. Thường thì  các câu lệnh có thể nhận các tên của đối số khác nhau. Ví dụ, flastmod có thể được trao cho một  URL với đối số là virtual, để lấy được thời gian của lần sửa đổi gần nhất từ server. Ví dụ:  để nhận được thời gian sửa đổi gần nhất của trang chủ trên server đó (điều này là hữu ích nếu  như trang được truy cập đó có thể có một tên khác, ví dụ là như thế).  Bên cạnh flastmod, có các câu lệnh SSI làm chức năng là lấy kích thước (size) của một file hay  một URL, các nội dung của một biến (được máy chủ truyền vào trong), các nội dung của một file  khác hay URL khác, hoặc kết quả của việc chạy một local file tức là một tệp tin trong nội bộ site.  Những câu lệnh này được nêu ra trong NCSA tutorial về vấn đề server side includes.  Khi các câu lệnh SSI được thực thi, một số các biến môi trường ('environment variables') được  thiết lập. Điều này hàm chứa các biến CGI (REMOTE_HOST etc), và thêm một số cái nữa, như là  DOCUMENT_NAME và LAST_MODIFIED. Các biến này có thể là thông tin đầu ra (output) với  câu lệnh echo (do vậy cách tốt hơn để lấy ra thời gian sửa đổi gần nhất của file hiện thời sẽ là ). 
  3. Extended SSI Apache mở rộng ngôn ngữ SSI chuẩn (NCSA­compatible) một cách đáng kể. Một số mở rộng  gồm có:  Các biến trong các câu lệnh: Apache cho phép các biến được dùng trong bất cứ một câu lệnh SSI  nào. Ví dụ, thời gian sửa đổi gần nhất của tài liệu hiện thời có thể lấy ra với  Thiết lập các biến: câu lệnh set có thể được dùng bên trong SSI để thiết lập các biến.  Các điều kiện: các câu lệnh SSI if, else, elif và endif có thể được dung để đưa các phần của file  vào dựa trên các kiểm tra mang tính điều kiện. Ví dụ, biến $HTTP_USER_AGENT có thể được  kiểm tra để xem loại của trình duyệt và thông tin đầu ra bằng các mã HTML khác nhau tùy thuộc  vào các khả năng của trình duyệt ấy.  Các ví dụ Đây là một số ví dụ dùng SSI:  Displaying document information  Mã sau đây đặt thời gian sửa đổi gần nhất lên trang đó:  Last modified:  Adding a footer to many documents  Hãy đặt đoạn mã sau đây xuống tận cùng của mỗi trang tài liệu:  Hide links from external users  Dùng câu lệnh if và biến REMOTE_ADDR CGI để xem xét xem liệu người sử dụng đó có ở trong  vùng nội bộ hay không (the local domain):  Internal Documents (Trong đó 1.2.3 là phần đầu (prefix) của địa chỉ IP của the local domain). 
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2