Mask
VIP Members
-
03/07/2013
-
33
-
25 bài viết
Một số cấu hình trên file .htaccess
1. .htaccess là gì?
1.1. .htaccess là gì
.htaccess là một file cấu hình sử dụng cho các web server chạy Apache. .htaccess dùng để thiết lập các tùy chọn: thực thi hay loại bỏ các chức năng, tính năng của Apache
1.2. Ý nghĩa ký hiệu định nghĩa trong .htaccess
# : cho phép server bỏ qua dòng này
[F] : Forbidden, hướng dẫn server trả về lỗi 403 cho client
[L] : Last rule, hướng dẫn server ngừng ghi lại sau khi một chỉ thị đã được xử lý
[N] : Next, chỉ dẫn cho Apache trả về luật rewrite cho tới khi tất cả các chỉ thị rewrite được hoàn tất.
[G]: Gone, chỉ dẫn server chuyển thông điệp Gone
[P]: Proxy, chỉ dẫn server sử dụng các request cung cấp bởi mod_proxy
[C]: Chain, chỉ dẫn server gắn luật trước với luật sau nó
[R]: Redirect, hướng dẫn Apache đưa ra một chuyển hướng
[NC]: No case, xác định bất cứ trường hợp nào liên quan tới nó là vô lý (Không thể xảy ra)
[PT]: Pas Through: chỉ dẫn mod_rewrite để vượt qua cơ chế ghi lại URL cho các xử lý xa hơn
[OR]: Or, là cú pháp logic bình thường (biểu thức kết hợp đúng khi một trong hai biểu thức con của nó đúng)
[NE]: No Escape: hướng dẫn server lọc đầu ra
[NS]: No Subresquest: hướng dẫn server giữ chỉ thị nếu là một request con từ bên trong
[QSA]: gắn thêm chuỗi truy vấn vào cuối URL
[S=x]: Skip: chỉ dẫn server dừng lại x luật
[E=[/COLOR]variable:value]: Environment Variale: chỉ dẫn server thiết lập giá trị tài nguyên
[T=MIME-type]: Mime Type: mô tả loại mime của tài nguyên đích
[]: xác định một tập các ký tự trong đó bất cứ ký tự nào có trong ngoặc xuất hiện sẽ được match
[]+: tập các ký tự trong đó bất cứ kết hợp nào với nó cũng được match
[a-z] : match với tất cả các ký tự từ a-z, theo bảng chữ cái. Có thể có thêm: [a-zA-Z]
a{n}: xác định số ký tự sẽ mở rộng cùng với ký tự đầu, tức là khi match được ký tự đầu sẽ lấy thêm bao nhiêu ký tự tiếp theo. Ví dụ: x sẽ lấy: x’s, xad, …
a{n,} : như a{n} nhưng có thể lấy 3 hoặc nhiều hơn
a{n,m}: như a{n} nhưng sẽ lấy trong khoảng từ n tới m
(): nhóm các ký tự lại với nhau, xem chúng như 1 đơn vị đơn lẻ
^: ghi chú bắt đầu chuỗi regex
$: ghi chú kết thúc chuỗi regex
? : cho phép chọn lựa ký tự.Ví dụ: monzas? sẽ match với monza hoặcmonzas
! : mô tả một phủ định, sẽ match với tất cả thứ gì khác với các ký tự sau !
. : thể hiện cho bất cứ ký tự đơn nào
+: match với một hoặc nhiều ký tự
*: match với 0 hoặc nhiều ký tự
|: phép hoặc logic
\: thêm vào trước các ký tự đặc biệt để có thể sử dụng chúng như các ký tự bình thường
.* : không có ký tự nào hoặc nhiều ký tự bất kỳ
^$: định nghĩa một chuỗi rỗng
^.*$: sử dụng để match mọi thứ
[^/.]: định nghĩa 1 ký tự là “/” hoặc “.”
[^/.]+: định nghĩa bất cứ số lượng ký tự nào chứa “/” hoặc “.”
http://: là một chuỗi bình thường
^domain.*: định nghĩa một chuỗi bắt đầu với “domain”
^domain\.com$: xác định sự mở rộng của chuỗi “domain.com”
-d: kiểm tra nếu chuỗi là một directory
-f: kiểm tra nếu một chuỗi là một file
-s: kiểm tra nếu file trong chuỗi kiểm tra có 1 giá trị khác 0
1.3. Mã redirect
301 – Move permanently
302 – Move temporarily
403 – Forbidden
404 – Not found
410 – Gone
1.4. Cách sử dụng .htaccess
Tạo file .htaccess (chú ý đây là tên đầy đủ, không phải là phần mở rộng), tiến hành các thiết lập cấu hình trong file và đặt ở trong thư mục mong muốn thực hiện các cấu hình đó.
Ví dụ:
Chú ý:
- Upload file .htaccess ở chế độ ASCII thay vì chế độ BINARY hay các chế độ khác do cơ chế chuyển dữ liệu ở các chế độ là khác nhau.
- Việc cấp quyền truy cập, sử dụng và thực thi file .htaccess có thể gây ra lỗi, cài đặt quyền 755 hoặc quyền thực thi với file
- Comment lại các thông tin cấu hình quan trọng để dễ dàng cho người tiếp quản sau này hoặc cho chính bản than khi phải cấu hình lại hoặc khắc phục sự cố nào đó
2. Những cấu hình cần thiết
2.1. Enable basic rewriting
Server có thể không bật chế độ “mod_rewite” mặc định, để đảm bảo chế độ này được bật, thêm vào file .htaccess tại thư mục root:
Xem về Symbolic links tại: http://en.wikipedia.org/wiki/Symbolic_link. Để chế độ này hoặc động, tính năng: AllowOverride Options cần được enable.
Đối với các chỉ thị cần tính năng AllowOverride để thực thi như: FollowSymlinks, … Khi cần enable tính năng này tại một thư mục nào đó, ta thêm vào .htaccess (Có thể cấu hình tại file server để áp dụng toàn bộ):
Không phải mọi hệ thống đều thích định dạng .htaccess, có thể thay đổi tên này (thực hiện trên file cấu hình của server):
Tiết kiệm thời gian và nỗ lực định nghĩa lại các luật lặp lại cho nhiều host ảo với chỉ 1 file httpd.conf, để đơn giản hơn ta cấu hình .htaccess kế thừa tập luật từ httpd.conf
3.1. Tăng hiệu năng thông qua AllowOverride
Việc cấu hình AllowOverride ở thư mục gốc, server sẽ phải tìm kiếm ở tất cả các thư mục để xem nơi nào .htaccess tồn tại, điều này làm chậm tốc độ xử lý. Để hạn chế điều này, disable chế độ AllowOverride tại thư mục gốc và bật lên ở những nơi cần dùng, để disable:
3.7. Tăng tốc độ duyệt site bằng việc enable file caching
3.8. Cài đặt ngôn ngữ và kiểu mã hóa mặc định
# set the default language
DefaultLanguage en-US
# set the default character set
AddDefaultCharset UTF-8
3.9. Mô tả MIME
MIME types là tập các phần mở rộng của file, server cần biết tham số này để biết nó đang thao tác với loại file nào. Sử dụng “AddType” để thêm một MIME, tham số tiếp theo là loại MIME và cuối cùng là phần mở rộng của file. Ví dụ với file MP3 hoặc SWF:
Danh sách các MIME và loại file tương ứng:
1.1. .htaccess là gì
.htaccess là một file cấu hình sử dụng cho các web server chạy Apache. .htaccess dùng để thiết lập các tùy chọn: thực thi hay loại bỏ các chức năng, tính năng của Apache
1.2. Ý nghĩa ký hiệu định nghĩa trong .htaccess
# : cho phép server bỏ qua dòng này
[F] : Forbidden, hướng dẫn server trả về lỗi 403 cho client
[L] : Last rule, hướng dẫn server ngừng ghi lại sau khi một chỉ thị đã được xử lý
[N] : Next, chỉ dẫn cho Apache trả về luật rewrite cho tới khi tất cả các chỉ thị rewrite được hoàn tất.
[G]: Gone, chỉ dẫn server chuyển thông điệp Gone
[P]: Proxy, chỉ dẫn server sử dụng các request cung cấp bởi mod_proxy
[C]: Chain, chỉ dẫn server gắn luật trước với luật sau nó
[R]: Redirect, hướng dẫn Apache đưa ra một chuyển hướng
[NC]: No case, xác định bất cứ trường hợp nào liên quan tới nó là vô lý (Không thể xảy ra)
[PT]: Pas Through: chỉ dẫn mod_rewrite để vượt qua cơ chế ghi lại URL cho các xử lý xa hơn
[OR]: Or, là cú pháp logic bình thường (biểu thức kết hợp đúng khi một trong hai biểu thức con của nó đúng)
[NE]: No Escape: hướng dẫn server lọc đầu ra
[NS]: No Subresquest: hướng dẫn server giữ chỉ thị nếu là một request con từ bên trong
[QSA]: gắn thêm chuỗi truy vấn vào cuối URL
[S=x]: Skip: chỉ dẫn server dừng lại x luật
[E=[/COLOR]variable:value]: Environment Variale: chỉ dẫn server thiết lập giá trị tài nguyên
[T=MIME-type]: Mime Type: mô tả loại mime của tài nguyên đích
[]: xác định một tập các ký tự trong đó bất cứ ký tự nào có trong ngoặc xuất hiện sẽ được match
[]+: tập các ký tự trong đó bất cứ kết hợp nào với nó cũng được match
[a-z] : match với tất cả các ký tự từ a-z, theo bảng chữ cái. Có thể có thêm: [a-zA-Z]
a{n}: xác định số ký tự sẽ mở rộng cùng với ký tự đầu, tức là khi match được ký tự đầu sẽ lấy thêm bao nhiêu ký tự tiếp theo. Ví dụ: x sẽ lấy: x’s, xad, …
a{n,} : như a{n} nhưng có thể lấy 3 hoặc nhiều hơn
a{n,m}: như a{n} nhưng sẽ lấy trong khoảng từ n tới m
(): nhóm các ký tự lại với nhau, xem chúng như 1 đơn vị đơn lẻ
^: ghi chú bắt đầu chuỗi regex
$: ghi chú kết thúc chuỗi regex
? : cho phép chọn lựa ký tự.Ví dụ: monzas? sẽ match với monza hoặcmonzas
! : mô tả một phủ định, sẽ match với tất cả thứ gì khác với các ký tự sau !
. : thể hiện cho bất cứ ký tự đơn nào
+: match với một hoặc nhiều ký tự
*: match với 0 hoặc nhiều ký tự
|: phép hoặc logic
\: thêm vào trước các ký tự đặc biệt để có thể sử dụng chúng như các ký tự bình thường
.* : không có ký tự nào hoặc nhiều ký tự bất kỳ
^$: định nghĩa một chuỗi rỗng
^.*$: sử dụng để match mọi thứ
[^/.]: định nghĩa 1 ký tự là “/” hoặc “.”
[^/.]+: định nghĩa bất cứ số lượng ký tự nào chứa “/” hoặc “.”
http://: là một chuỗi bình thường
^domain.*: định nghĩa một chuỗi bắt đầu với “domain”
^domain\.com$: xác định sự mở rộng của chuỗi “domain.com”
-d: kiểm tra nếu chuỗi là một directory
-f: kiểm tra nếu một chuỗi là một file
-s: kiểm tra nếu file trong chuỗi kiểm tra có 1 giá trị khác 0
1.3. Mã redirect
301 – Move permanently
302 – Move temporarily
403 – Forbidden
404 – Not found
410 – Gone
1.4. Cách sử dụng .htaccess
Tạo file .htaccess (chú ý đây là tên đầy đủ, không phải là phần mở rộng), tiến hành các thiết lập cấu hình trong file và đặt ở trong thư mục mong muốn thực hiện các cấu hình đó.
Ví dụ:
AuthName "Member's Area Name"
AuthUserFile /path/to/password/file/.htpasswd
AuthType Basic
require valid-user
ErrorDocument 401 /error_pages/401.html
AddHandler server-parsed .html
Ví dụ trên cấu hình sử dụng password bảo vệ thư mục và chuyển hướng tới trang 401.html khi gặp lỗi 401.AuthUserFile /path/to/password/file/.htpasswd
AuthType Basic
require valid-user
ErrorDocument 401 /error_pages/401.html
AddHandler server-parsed .html
Chú ý:
- Upload file .htaccess ở chế độ ASCII thay vì chế độ BINARY hay các chế độ khác do cơ chế chuyển dữ liệu ở các chế độ là khác nhau.
- Việc cấp quyền truy cập, sử dụng và thực thi file .htaccess có thể gây ra lỗi, cài đặt quyền 755 hoặc quyền thực thi với file
- Comment lại các thông tin cấu hình quan trọng để dễ dàng cho người tiếp quản sau này hoặc cho chính bản than khi phải cấu hình lại hoặc khắc phục sự cố nào đó
2. Những cấu hình cần thiết
2.1. Enable basic rewriting
Server có thể không bật chế độ “mod_rewite” mặc định, để đảm bảo chế độ này được bật, thêm vào file .htaccess tại thư mục root:
# enable basic rewriting
RewriteEngine on
2.2. Enable Symbolic linksRewriteEngine on
Xem về Symbolic links tại: http://en.wikipedia.org/wiki/Symbolic_link. Để chế độ này hoặc động, tính năng: AllowOverride Options cần được enable.
# enable symbolic links
Options +FollowSymLinks
2.3. Enable AllowOverrideOptions +FollowSymLinks
Đối với các chỉ thị cần tính năng AllowOverride để thực thi như: FollowSymlinks, … Khi cần enable tính năng này tại một thư mục nào đó, ta thêm vào .htaccess (Có thể cấu hình tại file server để áp dụng toàn bộ):
# enable allowoverride privileges
AllowOverride Options
2.4. Đặt tên lại file .htaccessAllowOverride Options
Không phải mọi hệ thống đều thích định dạng .htaccess, có thể thay đổi tên này (thực hiện trên file cấu hình của server):
# rename htaccess files
AccessFileName ht.access
Khi thay đổi tên file .htaccess, cần cập nhật tất cả các cấu hình liên quan. Ví dụ: nếu bạn bảo vệ .htaccess với FilesMatch, định dạng lại file này (với .htaccess đã đổi thành: ht.access):AccessFileName ht.access
# protect renamed htaccess files
Order deny,allow
Deny from all
2.5. Giữ lại các luật đã được định nghĩa trong httpd.confOrder deny,allow
Deny from all
Tiết kiệm thời gian và nỗ lực định nghĩa lại các luật lặp lại cho nhiều host ảo với chỉ 1 file httpd.conf, để đơn giản hơn ta cấu hình .htaccess kế thừa tập luật từ httpd.conf
RewriteOptions Inherit
3. Hiệu năng
3.1. Tăng hiệu năng thông qua AllowOverride
Việc cấu hình AllowOverride ở thư mục gốc, server sẽ phải tìm kiếm ở tất cả các thư mục để xem nơi nào .htaccess tồn tại, điều này làm chậm tốc độ xử lý. Để hạn chế điều này, disable chế độ AllowOverride tại thư mục gốc và bật lên ở những nơi cần dùng, để disable:
# increase performance by disabling allowoverride
AllowOverride None
3.2. Tăng hiệu năng bằng cách truyền tập các ký tựAllowOverride None
# pass the default character set
AddDefaultCharset utf-8
3.3. Tăng hiệu năng bởi việc bảo vệ bandwidthAddDefaultCharset utf-8
# preserve bandwidth for PHP enabled servers
php_value zlib.output_compression 16386
3.4. Disable chữ ký serverphp_value zlib.output_compression 16386
# disable the server signature
ServerSignature Off
3.5. Cài đặt server timezoneServerSignature Off
# set the server timezone
SetEnv TZ America/Washington
3.6. Đặt địa chỉ email cho quản trị serverSetEnv TZ America/Washington
# set the server administrator email
SetEnv SERVER_ADMIN [email protected]
SetEnv SERVER_ADMIN [email protected]
3.7. Tăng tốc độ duyệt site bằng việc enable file caching
# cache images and flash content for one month
Header set Cache-Control "max-age=2592000"
# cache text, css, and javascript files for one week
Header set Cache-Control "max-age=604800"
# cache html and htm files for one day
Header set Cache-Control "max-age=43200"
# implement minimal caching during site development
Header set Cache-Control "max-age=5"
# explicitly disable caching for scripts and other dynamic files
Header unset Cache-Control
# alternate method for file caching
ExpiresActive On
ExpiresDefault A604800 # 1 week
ExpiresByType image/x-icon A2419200 # 1 month
ExpiresByType application/x-javascript A2419200 # 1 month
ExpiresByType text/css A2419200 # 1 month
ExpiresByType text/html A300 # 5 minutes
# disable caching for scripts and other dynamic files
ExpiresActive Off
Header set Cache-Control "max-age=2592000"
# cache text, css, and javascript files for one week
Header set Cache-Control "max-age=604800"
# cache html and htm files for one day
Header set Cache-Control "max-age=43200"
# implement minimal caching during site development
Header set Cache-Control "max-age=5"
# explicitly disable caching for scripts and other dynamic files
Header unset Cache-Control
# alternate method for file caching
ExpiresActive On
ExpiresDefault A604800 # 1 week
ExpiresByType image/x-icon A2419200 # 1 month
ExpiresByType application/x-javascript A2419200 # 1 month
ExpiresByType text/css A2419200 # 1 month
ExpiresByType text/html A300 # 5 minutes
# disable caching for scripts and other dynamic files
ExpiresActive Off
- * Convert common time intervals into seconds:
- 300 = 5 minutes
- 2700 = 45 minutes
- 3600 = 1 hour
- 54000 = 15 hours
- 86400 = 1 day
- 518400 = 6 days
- 604800 = 1 week
- 1814400 = 3 weeks
- 2419200 = 1 month
- 26611200 = 11 months
- 29030400 = 1 year = never expires
3.8. Cài đặt ngôn ngữ và kiểu mã hóa mặc định
# set the default language
DefaultLanguage en-US
# set the default character set
AddDefaultCharset UTF-8
3.9. Mô tả MIME
MIME types là tập các phần mở rộng của file, server cần biết tham số này để biết nó đang thao tác với loại file nào. Sử dụng “AddType” để thêm một MIME, tham số tiếp theo là loại MIME và cuối cùng là phần mở rộng của file. Ví dụ với file MP3 hoặc SWF:
AddType application/x-shockwave-flash swf
AddType application/x-shockwave-flash .swf
AddType video/x-flv .flv
AddType image/x-icon .ico
Một số loại file không cho chạy trực tiếp trên trình duyệt mà yêu cầu download về máy, loại MIME cần thiết lập là: application/octec-streamAddType application/x-shockwave-flash .swf
AddType video/x-flv .flv
AddType image/x-icon .ico
Danh sách các MIME và loại file tương ứng:
AddType text/html .html .htm
AddType text/plain .txt
AddType text/richtext .rtx
AddType text/tab-separated-values .tsv
AddType text/x-setext .etx
AddType text/x-server-parsed-html .shtml .sht
AddType application/macbinhex-40 .hqx
AddType application/netalivelink .nel
AddType application/netalive .net
AddType application/news-message-id
AddType application/news-transmission
AddType application/octet-stream .bin .exe
AddType application/oda .oda
AddType application/pdf .pdf
AddType application/postscript .ai .eps .ps
AddType application/remote-printing
AddType application/rtf .rtf
AddType application/slate
AddType application/zip .zip
AddType application/x-mif .mif
AddType application/wita
AddType application/wordperfect5.1
AddType application/x-csh .csh
AddType application/x-dvi .dvi
AddType application/x-hdf .hdf
AddType application/x-latex .latex
AddType application/x-netcdf .nc .cdf
AddType application/x-sh .sh
AddType application/x-tcl .tcl
AddType application/x-tex .tex
AddType application/x-texinfo .texinfo .texi
AddType application/x-troff .t .tr .roff
AddType application/x-troff-man .man
AddType application/x-troff-me .me
AddType application/x-troff-ms .ms
AddType application/x-wais-source .src
AddType application/x-bcpio .bcpio
AddType application/x-cpio .cpio
AddType application/x-gtar .gtar
AddType application/x-shar .shar
AddType application/x-sv4cpio .sv4cpio
AddType application/x-sv4crc .sv4crc
AddType application/x-tar .tar
AddType application/x-ustar .ustar
AddType application/x-director .dcr
AddType application/x-director .dir
AddType application/x-director .dxr
AddType application/x-onlive .sds
AddType application/x-httpd-cgi .cgi
AddType image/gif .gif .GIF
AddType image/ief .ief
AddType image/jpeg .jpeg .jpg .jpe .JPG
AddType image/tiff .tiff .tif
AddType image/x-cmu-raster .ras
AddType image/x-portable-anymap .pnm
AddType image/x-portable-bitmap .pbm
AddType image/x-portable-graymap .pgm
AddType image/x-portable-pixmap .ppm
AddType image/x-rgb .rgb
AddType image/x-xbitmap .xbm
AddType image/x-xpixmap .xpm
AddType image/x-xwindowdump .xwd
AddType audio/basic .au .snd
AddType audio/x-aiff .aif .aiff .aifc
AddType audio/x-wav .wav
AddType audio/x-pn-realaudio .ram
AddType audio/x-midi .mid
AddType video/mpeg .mpeg .mpg .mpe
AddType video/quicktime .qt .mov
AddType video/x-msvideo .avi
AddType video/x-sgi-movie .movie
AddType message/external-body
AddType message/news
AddType message/partial
AddType message/rfc822
AddType multipart/alternative
AddType multipart/appledouble
AddType multipart/digest
AddType multipart/mixed
AddType multipart/parallel
AddType x-world/x-vrml .wrl
3.10. Gửi kiểu mã hóa và header không cần thẻ metaAddType text/plain .txt
AddType text/richtext .rtx
AddType text/tab-separated-values .tsv
AddType text/x-setext .etx
AddType text/x-server-parsed-html .shtml .sht
AddType application/macbinhex-40 .hqx
AddType application/netalivelink .nel
AddType application/netalive .net
AddType application/news-message-id
AddType application/news-transmission
AddType application/octet-stream .bin .exe
AddType application/oda .oda
AddType application/pdf .pdf
AddType application/postscript .ai .eps .ps
AddType application/remote-printing
AddType application/rtf .rtf
AddType application/slate
AddType application/zip .zip
AddType application/x-mif .mif
AddType application/wita
AddType application/wordperfect5.1
AddType application/x-csh .csh
AddType application/x-dvi .dvi
AddType application/x-hdf .hdf
AddType application/x-latex .latex
AddType application/x-netcdf .nc .cdf
AddType application/x-sh .sh
AddType application/x-tcl .tcl
AddType application/x-tex .tex
AddType application/x-texinfo .texinfo .texi
AddType application/x-troff .t .tr .roff
AddType application/x-troff-man .man
AddType application/x-troff-me .me
AddType application/x-troff-ms .ms
AddType application/x-wais-source .src
AddType application/x-bcpio .bcpio
AddType application/x-cpio .cpio
AddType application/x-gtar .gtar
AddType application/x-shar .shar
AddType application/x-sv4cpio .sv4cpio
AddType application/x-sv4crc .sv4crc
AddType application/x-tar .tar
AddType application/x-ustar .ustar
AddType application/x-director .dcr
AddType application/x-director .dir
AddType application/x-director .dxr
AddType application/x-onlive .sds
AddType application/x-httpd-cgi .cgi
AddType image/gif .gif .GIF
AddType image/ief .ief
AddType image/jpeg .jpeg .jpg .jpe .JPG
AddType image/tiff .tiff .tif
AddType image/x-cmu-raster .ras
AddType image/x-portable-anymap .pnm
AddType image/x-portable-bitmap .pbm
AddType image/x-portable-graymap .pgm
AddType image/x-portable-pixmap .ppm
AddType image/x-rgb .rgb
AddType image/x-xbitmap .xbm
AddType image/x-xpixmap .xpm
AddType image/x-xwindowdump .xwd
AddType audio/basic .au .snd
AddType audio/x-aiff .aif .aiff .aifc
AddType audio/x-wav .wav
AddType audio/x-pn-realaudio .ram
AddType audio/x-midi .mid
AddType video/mpeg .mpeg .mpg .mpe
AddType video/quicktime .qt .mov
AddType video/x-msvideo .avi
AddType video/x-sgi-movie .movie
AddType message/external-body
AddType message/news
AddType message/partial
AddType message/rfc822
AddType multipart/alternative
AddType multipart/appledouble
AddType multipart/digest
AddType multipart/mixed
AddType multipart/parallel
AddType x-world/x-vrml .wrl
# send the language tag and default character set
# AddType 'text/html; charset=UTF-8' html
AddDefaultCharset UTF-8
DefaultLanguage en-US
3.11. Giới hạn các request GET và PUT# AddType 'text/html; charset=UTF-8' html
AddDefaultCharset UTF-8
DefaultLanguage en-US
# limit server request methods to GET and PUT
Options -ExecCGI -Indexes -All
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS|HEAD) RewriteRule .* - [F]
3.12. Lựa chọn file xử lý theo phương thức request tới serverOptions -ExecCGI -Indexes -All
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK|OPTIONS|HEAD) RewriteRule .* - [F]
# process files according to server request method
Script PUT /cgi-bin/upload.cgi
Script GET /cgi-bin/download.cgi
3.13. Thực thi một định dạng file bằng 1 cgi scriptScript PUT /cgi-bin/upload.cgi
Script GET /cgi-bin/download.cgi
# execute all png files via png-script.cgi
Action image/png /cgi-bin/png-script.cgi
Action image/png /cgi-bin/png-script.cgi