1. Custom Directory Index Files
DirectoryIndex index.html index.php index.htm
2. Custom Error Pages
ErrorDocument 404 errors/404.html
3. Control access at files & directory level
จำกัดหรือปฏิเสธการเข้าใช้ไฟล์หรือโฟลเดอร์ที่เป็นส่วนบุคคล เช่น โฟลเดอร์ includes ที่เก็บไฟล์สคริปต่างๆ
ในกรณีนี้ให้สร้างไฟล์ .htaccess ในโฟลเดอร์ includes แล้วใส่คำสั่งดังนี้
# no one gets in here! deny from all
สามารถระบุเงื่อนไขได้เช่นกัน โดยตัวอย่างนี้เป็นการจำกัดการเข้าถึงจากช่วงของ IP
# no nasty crackers in here! order deny,allow deny from all allow from 192.168.0.0/24 # this would do the same thing.. #allow from 192.168.0
# someone else giving the ruskies a bad name.. order allow,deny deny from 83.222.23.219 allow from all
4. Modifying the Environment Variable
Set / Unset environment variables โดยใช้ SetEnv and UnSetEnv.
SetEnv SITE_WEBMASTER_URI mailto:Jack.Sprat@characterology.com UnSetEnv REMOTE_ADDR
5. 301 Redirect using htaccess
ถ้าต้องการที่จะ redirect จากไฟล์เก่าไปไฟล์ใหม่
Redirect 301 /old/file.html http://yourdomain.com/new/file.html
RedirectMatch 301 /blog(.*) http://yourdomain.com/$1
Cache ข้อมูลที่มีการเปลี่ยนแปลงไม่บ่อย (static) เพื่อเพื่ม performance ระบบ
# year Header set Cache-Control “public” Header set Expires “Thu, 15 Apr 2010 20:00:00 GMT” Header unset Last-Modified #2 hours Header set Cache-Control “max-age=7200, must-revalidate” SetOutputFilter DEFLATE Header set Expires “Thu, 15 Apr 2010 20:00:00 GMT”
บีบอัดไฟล์ css, js, html, ด้วย Gzip
mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
ถ้าเว็บเซอร์เวอร์ของคุณสนับสนุน mod_deflate
SetOutputFilter DEFLATE SetEnvIfNoCase Request_URI \ \.(?:gif|jpe?g|png)$ no-gzip dont-vary SetEnvIfNoCase Request_URI \ \.(?:exe|t?gz|zip|gz2|sit|rar)$ no-gzip dont-vary
php_value output_handler ob_gzhandler
8. Redirect browser to https (ssl)
redirect เว็บไซด์ไปใช้ https
RewriteEngine On RewriteCond %{HTTPS} !on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
9. Rewrite URLs using htacccess
เปลี่ยน URL จาก product.php?id=12 เป็น product-12.html
RewriteEngine on RewriteRule ^product-([0-9]+)\.html$ product.php?id=$1
เปลี่ยน URL จาก product.php?id=12 เป็น product/ipod-nano/12.html
RewriteEngine on RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+)\.html$ product.php?id=$2
เปลี่ยน URL ที่ไม่มี www ให้มี www (ป้องกัน Duplicate Content)
RewriteEngine On RewriteCond %{HTTP_HOST} ^viralpatel\.net$ RewriteRule (.*) http://www.viralpatel.net/$1 [R=301,L]
เปลี่ยน URL จาก yoursite.com/user.php?username=xyz เป็น yoursite.com/xyz
RewriteEngine On RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1 RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1
Redirect domain ไปหา subfolder ภายใน public_html
RewriteEngine On RewriteCond %{HTTP_HOST} ^test\.com$ [OR] RewriteCond %{HTTP_HOST} ^www\.test\.com$ RewriteCond %{REQUEST_URI} !^/new/ RewriteRule (.*) /new/$1
10. Prevent Directory Listing
หลีกเลี่ยง directory listing
Options -Indexes
IndexIgnore *
ประเภทขึ้นอยู่กับนามสกุลไฟล์ นามสกุลที่ไม่รู้จักจะถูกเปลี่ยนเป็นข้อความ และจะเกิดความเสียหาย
AddType application/x-endnote-connection enz AddType application/x-endnote-filter enf AddType application/x-spss-savefile sav
RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{REQUEST_URI} !^/(wp-login.php|wp-admin/|wp-content/plugins/|wp-includes/).* [NC] RewriteCond %{HTTP_REFERER} !^http://www.askapache.com.*$ [NC] RewriteRule \.(ico|pdf|flv|jpg|jpeg|mp3|mpg|mp4|mov|wav|wmv|png|gif|swf|css|js)$ – [F,NS,L]
php_value upload_max_filesize 20M php_value post_max_size 20M php_value max_execution_time 200 php_value max_input_time 200
บรรทัดสองคือการจำกัดค่าสูงสุดของข้อมูลการโพส
บรรทัดสามคือค่าเวลาในการ execution
บรรทัดสุดท้ายคือค่าเวลาสูงสุดที่อนุญาติในการ input ข้อมูลอัพโหลดเช่น POST and GET
14. Disallow Script Execution
Options -ExecCGI AddHandler cgi-script .php .pl .py .jsp .asp .htm .shtml .sh .cgi
15. Change Charset and Language headers
AddDefaultCharset UTF-8 DefaultLanguage en-US
16. Set Timezone of the Server (GMT)
SetEnv TZ America/Indianapolis
รายชื่อของเขตเวลาที่สนับสนุน
http://www.php.net/manual/en/timezones.php
17. Force “File Save As” Prompt
AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4
18. Protecting a single file
โดยปกติ .htaccess จะมีผลกับข้อมูลทั้งไดเรคทอรี่ แต่คุณสามารถที่จะแก้ไขคำสั่งแบบเจาะจงกับบางไฟล์
order deny,allow deny from all AuthType Basic AuthName “Characterology Student Authcate” AuthLDAP on AuthLDAPServer ldap://directory.characterology.com/ AuthLDAPBase “ou=Student, o=Characterology University, c=au” require valid-user satisfy any
19. Set Cookie using htaccess
environment variable Header set Set-Cookie “language=%{lang}e; path=/;” env=lang
สร้าง cookie ในเครื่อง client กับข้อมูลที่ matching กัน
RewriteEngine On RewriteBase / RewriteRule ^(.*)(de|es|fr|it|ja|ru|en)/$ – [co=lang:$2:.yourserver.com:7200:/]
20. Send Custom Headers
Header set P3P “policyref=\”http://www.askapache.com/w3c/p3p.xml\”" Header set X-Pingback “http://www.askapache.com/xmlrpc.php” Header set Content-Language “en-US” Header set Vary “Accept-Encoding”
21. Blocking request based on User-Agent Header
SetEnvIfNoCase ^User-Agent$ .*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures) HTTP_SAFE_BADBOT SetEnvIfNoCase ^User-Agent$ .*(libwww-perl|aesop_com_spiderman) HTTP_SAFE_BADBOT Deny from env=HTTP_SAFE_BADBOT
22.Prevent hacks
ถ้าคุณต้องการที่จะเพิ่มระดับความปลอดภัยให้กับระบบคุณ คุณสามารถเพิ่มโค้ดเพียงไม่กี่บรรทัดนี้ เพื่อตรวจสอบ url ที่แปลกๆที่มีพิรุทเสี่ยงจะเป็นอัตราย
RewriteEngine On # proc/self/environ? noway! RewriteCond %{QUERY_STRING} proc/self/environ [OR] # Block out any script trying to set a mosConfig value through the URL RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR] # Block out any script trying to base64_encode crap to send via URL RewriteCond %{QUERY_STRING} base64_encode.*(.*) [OR] # Block out any script that includes a