Anda di halaman 1dari 6

Tutorial Setting .

htaccess
Jika Anda benar-benar
mod_rewrite.h.

ingin

melihat,

memeriksa

file

mod_rewrite.c

dan

Sadarilah bahwa mod_rewrite (RewriteRule, RewriteBase, dan RewriteCond) kode


dieksekusi untuk permintaan HTTP setiap yang mengakses file dalam atau di bawah
direktori dimana kode berada, sehingga selalu baik untuk membatasi kode untuk
situasi
tertentu
jika
mudah
diidentifikasi.
Misalnya, untuk membatasi 5 RewriteRules berikutnya hanya diterapkan untuk html
dan.. File php, Anda dapat menggunakan kode berikut, yang tes jika url tidak
berakhir dalam. Html atau. Php dan jika tidak, itu akan melewatkan 5 RewriteRules
berikutnya.
RewriteRule !\.(html|php)$ - [S=5]
RewriteRule ^.*-(vf12|vf13|vf5|vf35|vf1|vf10|vf33|vf8).+$ - [S=1]

Contoh menulis ulang htaccess harus dimulai dengan:


Options +FollowSymLinks
RewriteEngine On
RewriteBase /

Menggunakan www
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.askapache\.com$ [NC]
RewriteRule ^(.*)$ http://www.askapache.com/$1 [R=301,L]

Menghentikan lingkaran Kode


Kadang-kadang
Anda
menulis
ulang
menyebabkan
loop
tak
menghentikannya dengan salah satu menulis ulang kode potongan.

terbatas,

RewriteCond %{REQUEST_URI} ^/(stats/|missing\.html|failed_auth\.html|error/).*


[NC]
RewriteRule .* - [L]
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

Cache-Friendly Nama File

Ini mungkin favorit saya, dan saya gunakan pada setiap situs yang saya bekerja
di. Hal ini memungkinkan saya untuk mengupdate javascript dan file css pada
cache pengunjung saya hanya dengan menyebut nama mereka berbeda di html, di
server mereka tinggal nama yang sama. Ini ulang semua file untuk / zap / j /
apa-anynumber.js ke / zap / j / anything.js dan / zap / c / apa-anynumber.css
ke / zap / c / anything.css
RewriteRule ^zap/(j|c)/([a-z]+)-([0-9]+)\.(js|css)$ /zap/$1/$2.$4 [L]

SEO friendly link untuk non-flash browser


Bila Anda menggunakan flash di situs Anda dan Anda benar menyediakan link
untuk mendownload flash yang muncul untuk non-flash browser sadar, itu bagus
untuk menggunakan shortcut untuk menjaga kode Anda bersih dan link eksternal
Anda untuk minimum. Kode ini memungkinkan saya untuk link ke site.com /
getflash / untuk non-flash browser sadar.
RewriteRule ^getflash/?$ http://www.adobe.com/shockwave/download/download.cgi?
P1_Prod_Version=ShockwaveFlash [NC,L,R=307]

Menghapus QUERY_STRING
Pada banyak situs, halaman yang akan ditampilkan untuk kedua halaman.html dan
halaman.html apa = apa-apa, yang sakit SEO Anda dengan duplikat konten?. Cara
mudah untuk memperbaiki masalah ini adalah untuk mengarahkan permintaan
eksternal yang mengandung string query ke uri sama tanpa QUERY_STRING
tersebut.
RewriteCond %{THE_REQUEST} ^GET\ /.*\;.*\ HTTP/
RewriteCond %{QUERY_STRING} !^$
RewriteRule .* http://www.askapache.com%{REQUEST_URI}? [R=301,L]

Mengirim permintaan untuk script php


Contoh menulis ulang. Htaccess tak terlihat penulisan ulang permintaan untuk
semua file pdf Adobe untuk ditangani oleh / cgi-bin/pdf-script.php
RewriteRule ^(.+)\.pdf$

/cgi-bin/pdf-script.php?file=$1.pdf [L,NC,QSA]

Pengaturan variabel bahasa berbasis pada Client

Untuk situs yang menggunakan multiviews atau dengan kemampuan berbagai bahasa,
itu bagus untuk dapat mengirim bahasa yang benar secara otomatis berdasarkan
pada bahasa klien disukai.
RewriteCond %{HTTP:Accept-Language} ^.*(de|es|fr|it|ja|ru|en).*$ [NC]
RewriteRule ^(.*)$ - [env=prefer-language:%1]

Deny Akses Untuk Semua Kecuali fopen PHP


Hal ini memungkinkan akses ke semua file dengan fopen php, tapi tidak untuk
orang lain.
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^.+$ [NC]


RewriteRule .* - [F,L]

Menolak akses untuk apa pun di subfolder kecuali fopen php

Ini dapat sangat berguna jika Anda ingin melayani file media atau download
khusus tetapi hanya melalui script proxy yang php.
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+)/.*\ HTTP [NC]
RewriteRule .* - [F,L]

Tidak memerlukan www


Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^askapache\.com$ [NC]
RewriteRule ^(.*)$ http://askapache.com/$1 [R=301,L]

Periksa kunci dalam QUERY_STRING


Menggunakan Directive RewriteCond untuk memeriksa QUERY_STRING untuk passkey,
jika tidak ditemukan alihkan semua permintaan untuk apa pun di / log in /
direktori untuk script / login.php.
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} !passkey
RewriteRule ^/logged-in/(.*)$ /login.php [L]

Removes the QUERY_STRING from the URL


If the QUERY_STRING has any value at all besides blank than the?at the end of /login.php?
tells mod_rewrite to remove the QUERY_STRING from login.php and redirect.
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} .
RewriteRule ^login.php /login.php? [L]

Fix for infinite loops

An error message related to this is Request exceeded the limit of 10 internal


redirects due to probable configuration error. Use 'LimitInternalRecursion' to
increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. or

you may seeRequest exceeded the limit,probable configuration error,Use 'LogLevel


debug' to get a backtrace, orUse 'LimitInternalRecursion' to increase the limit
if necessary

RewriteCond %{ENV:REDIRECT_STATUS} 200


RewriteRule .* - [L]

External Redirect .php files to .html files (SEO friendly)


RewriteRule ^(.*)\.php$ /$1.html [R=301,L]

Internal Redirect .php files to .html files (SEO friendly)

Redirects all files that end in .html to be served from filename.php so it looks like all your pages
are .html but really they are .php
RewriteRule ^(.*)\.html$ $1.php [R=301,L]

block access to files during certain hours of the day


Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# If the hour is 16 (4 PM) Then deny all access
RewriteCond %{TIME_HOUR} ^16$
RewriteRule ^.*$ - [F,L]

Rewrite underscores to hyphens for SEO URL

Converts all underscores "_" in urls to hyphens "-" for SEO benefits... See the full article for
more info.
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule !\.(html|php)$ - [S=4]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4-$5
[E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)_(.*)$ $1-$2-$3-$4 [E=uscor:Yes]
RewriteRule ^([^_]*)_([^_]*)_(.*)$ $1-$2-$3 [E=uscor:Yes]
RewriteRule ^([^_]*)_(.*)$ $1-$2 [E=uscor:Yes]
RewriteCond %{ENV:uscor} ^Yes$
RewriteRule (.*) http://d.com/$1 [R=301,L]

Require the www without hardcoding

Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.[a-z-]+\.[a-z]{2,6} [NC]
RewriteCond %{HTTP_HOST} ([a-z-]+\.[a-z]{2,6})$
[NC]
RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]

Require no subdomain

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} \.([a-z-]+\.[a-z]{2,6})$ [NC]

RewriteRule ^/(.*)$ http://%1/$1 [R=301,L]

Or
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} \.([^\.]+\.[^\.0-9]+)$
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Redirecting WordPress Feeds to Feedburner


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} ^/feed\.gif$
RewriteRule .* - [L]

RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC]


RewriteRule ^feed/?.*$ http://feeds.feedburner.com/apache/htaccess [L,R=302]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Hanya mengizinkan request method GET dan PUT


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} !^(GET|PUT)
RewriteRule .* - [F]

Prevent Files image/file hotlinking and bandwidth stealing


RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?askapache.com/.*$ [NC]
RewriteRule \.(gif|jpg|swf|flv|png)$ /feed/ [R=302,L]

Stop browser prefetching

RewriteEngine On
SetEnvIfNoCase X-Forwarded-For .+ proxy=yes
SetEnvIfNoCase X-moz prefetch no_access=yes
# block pre-fetch requests with X-moz headers
RewriteCond %{ENV:no_access} yes
RewriteRule .* - [F,L]

Upload File dengan ukuran besar


php_value
php_value
php_value
php_value

upload_max_filesize 20M
post_max_size 20M
max_execution_time 200
max_input_time 200

Aktifkan rewrite engine


RewriteEngine on

Memproteksi Gambar
Disini kita dapat menambahkan domain-domain yang di perbolehkan hotlink image
dari website kita.
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain-anda.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain-anda2.com [NC]

Perbolehkan dari Search Engine


code dibawah ini memperbolehkan search engine mengakses image kita. Bila tidak
menginginkannya anda dapat menghapus code ini.
RewriteCond
RewriteCond
RewriteCond
RewriteCond

%{HTTP_REFERER}
%{HTTP_REFERER}
%{HTTP_REFERER}
%{HTTP_REFERER}

!google\. [NC]
!search\?q=cache [NC]
!msn\. [NC]
!yahoo\. [NC]

Menampilkan Hotlink image Alert


pada bagian ini akan menampilkan gambar yang telah kita tentukan, jika ada
yang hotlink image dari website kita (letakan hotlinker.gif pada root anda).
RewriteCond %{REQUEST_URI} !^hotlinker\.gif$
RewriteRule \.(jpe?g|png|gif)$ hotlinker.gif [NC,R,L]

Kode Lengkapnya:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain-anda.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain-anda2.com [NC]
RewriteCond %{HTTP_REFERER} !google\. [NC]
RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
RewriteCond %{HTTP_REFERER} !msn\. [NC]
RewriteCond %{HTTP_REFERER} !yahoo\. [NC]
RewriteCond %{REQUEST_URI} !^hotlinker\.gif$
RewriteRule \.(jpe?g|png|gif)$ hotlinker.gif [NC,R,L]

Mengalihkan halaman 301


RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com
RewriteRule (.*) http://www.domain.com/$1 [R=301,L]