.htaccess

ashkan nasirzadeh اشکان نصیرزاده

اشکان نصیرزاده

htaccess مخفف HyperTextAccess است

# change not found page
ErrorDocument 404 /rootFolder/404.html

# 200: ok
# 404: not found
# 403: forbidden
# 500: internal server error
# 502: bad gateway
# Access control with htaccess
# redirect every one wants secret.html to homepage 
<Files secret.html>
Redirect /rootFolder/secret.html /
</Files>
# deny all ip addresses
<Files secret.html>
order allow,deny
deny from all
</Files>
# Directory Listening
# index.htm, index.html, index.php => these files are default 'directoy index' files
# change directory index file:
DirectoryIndex op1.html op2.html op3.php
# no directory listening even if there was no directory index and instead show a forbidden message:
DirectoryIndex op1.html op2.html op3.php
Options -Indexes
# change file types
# make .png files downloadable instead of view it:
AddType application/octet-stream .png
# make .kia files work as a php files
AddType application/x-httpd-php .kia
# in an upload page make it secure so no php files (application mime type files) can be upload there
AddType application/octet-stream .php .phtml .php5 .php6 .php4 .cgi
# Redirect
Redirect /a/b.html /c.html
# for S.E.O. concerns use 301 status code in Redirects
Redirect 301 /a/b.html /c.html
# redirect a folder to another folder: (so /a/ali.html goes to /b/ali.html)
Redirect /a/ /b/
# RedirectMatch
RedirectMatch (.*).jpg $1_pic.png

دقت کنید که تفاوت rewrite و redirect اینه که آدرس بالای مرورگر در rewrite تغییر نمی کند همچنین دقت کنید که flag ای که در کد زیر به شکل [N] وجود دارد به این معناست که اونقدر دنبال pattern مورد نظر بگردیم تا نهایتا هیچ pattern ای دیگر از اون شکل وجود نداشته باشد

RewriteEngine on
RewriteRule (.*)-(.*) $1_$2 [N]
# Logs (0=nolog 9=show all logs) - these codes must be write in httpd.conf
RewriteEngine On
RewriteLogLevel 9
RewriteLog /a/b/c/d/a.txt
# flag C: check roles one by one untill one of them become true
# flag CO: make cookie for example:
RewriteEngine On
RewriteRule ^/info.php - [CO=cookieName:cookieValue:.localhost]
# flag E: change the value of environment variables
# flag F: send a forbidden error on a specific rule (in this example when user wnats info.php page)
RewriteEngine On
RewriteRule ^/info.php - [F]
# flag L : use just a single rule in your Rewrite code
# flag NC: no case and the rule wont be casesensetive
# flag NE: no scape 
RewriteEngine On
RewriteCond %{TIME_HOUR}<12
RewriteCond %{TIME_HORE}>12
RewriteRule (.*) morning.php
RewriteRule (.*) evening.php
# if user requested a file or folder that doesn't exists redirect to homepage
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) / [R]
# making friendly urls
RewriteEngine On
RewriteRule ^page-(.*)\.html$ page.php?id=$1 [NC]
# block every body who comes from google or yahoo
RewriteEngine On
RewriteCond %{HTTP_REFERER} google\.com [NC,OR]
RewriteCond %{HTTP_REFERER} yahoo\.com
RewriteRule .* - [F]
# default picture
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule /images/(.*).png images/default.png
# block spam bots
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^libghttp [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Missigua [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule .* - [F]
#redirect from root to /index folder
RewriteEngine On
RewriteRule ^$ index [L]
# redirect subdomain to domain parameter
RewriteCond %{HTTP_HOST} !^www\.rosarisara\.ir
RewriteCond %{HTTP_HOST} ^(.+)\.rosarisara\.ir
RewriteRule ^(.*)$ http://rosarisara\.ir/?id=$1