Etiket: htaccess
htaccess hakkındaki yazılar:
Web sitelerimizde yer alan resimlerin kopyalanmaması için bahsedeceğim çeşitli teknikler uygulanabilir. Bu resim koruma yöntemleri bir takım önlemler olsalar da yine de kopyalanmamayı garanti edemez. En basitinden ekran kopyala (print-screen) tuşu bile resmi kopyalamaya yetecektir.
Resim koruma önlemleri:
1. Sağ tuş kilitleme (disable right click): Resmin üzerinde sağ tıklayıp "resmi kaydet"i önler.
Bakınız: No right click
Ayrıca: jQuery Plugin for no right click
2. Internet Explorer 6 Image Toolbar'ı kaldırma (Disable IE6 Image Toolbar): Resmin üzerine gelindiğinde otomatik görünen kaydetme seçeneğini kaldırır.

Disable IE6 Image Toolbar
3. Gerçek resmin üzerine boş resim koymak: Bu yöntemde gerçek resminizi "div" etiketi içinde arka plan resmi olarak kullanıyorsunuz. Transparan boşluk resminizi de aynı boyutlarda gerçek resimmiş gibi kullanıyorsunuz. Orijinal resmi gören kişi resmi kaydetmeye çalıştığında "blank-boşluk" resmi kaydetmiş olacaktır.
CPanel ve benzeri kontrol panelleri üzerinden elle (manual olarak) subdomainler oluşturabilmekteyiz. Fakat diyelim ki sitemizde bulunan her kullanıcı için bir subdomain vermek istiyoruz. O zaman kullanıcıları kuyruğa alıp sonra cpanel üzerinden elle alt alanadları oluşturmak bir hayli zahmetli ve anında etkileşimli olmayan bir iş.
Hi5.com ve benzeri sitelerde görüleceği üzere, üye olan her kullanıcı subdomain sahibi olabilmekte.
Şimdi otomatik subdomaini manual oluşturmaktan başka olarak iki şeyden bahsedeceğim.
1. .htaccess ile:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^([^\.]+)\.bildirgec\.org$ [NC]
RewriteCond %1 !^(www|ftp|mail)$ [NC]
RewriteRule ^.*$ http://www.bildirgec.org/uye.php?kullaniciadi=%1 [R,L]Görüldüğü gibi www, ftp, mail haricinde tüm kullanıcı adları için subdomain oluşturulabilecektir. Yalnız işlem bu kadar basit olabileceği gibi bu kadar kolay da olmayabilir. DNS ayarları gerekebilir.
DNS ayarları:
DNS Functions > Edit DNS Zone kısmında
DNS: *.bildirgec.org (ya da sadece *)
TTL: 14400
IN: IN
Record Type: A (Kayıt Türü)
şeklinde ayarlanır.Bu ayar ile subdomain'lerin hostunuzun bulunduğu ip adresine düşmesi sağlanır. Ayrıca Host firmanızın DNS wildcard'ı aktifleştirmiş olması gerekmektedir.
Bu tüm subdomain'lerin hesabınıza yönlenmesini sağlayacaktır. Bu işlem de ServerAlias direktifleri ile httpd.conf ile yapılır.
httpd.conf ayarı:
<VirtualHost 255.255.255.0>
DocumentRoot /home/username/public_html
ServerName www.bildirgec.org
ServerAlias bildirgec.org
ServerAlias *.bildirgec.org
</VirtualHost>
2. PHP'de CPanel ile Etkileşerek: Siteniz PHP dilini destekliyorsa
<?php
define(’CPANELKADI’,'cpanel_kullanici_adini_buraya_giriniz’);
define(’CPANELPAROLA’,'cpanel_parolasini_buraya_giriniz’);
define(’METIN_DOSYA’,'altalan.txt’); // istersek alt alan adlarını bir txt dende çekebilirsiniz
define(’CPANEL_SABLON’,'rvblue’); // Türkçe cpaneller genelde rvblue dür ancak ingilizce ise genellikle x kullanılır. Tam olarak öğrenmek için cPanelinize giriniz ve urlde frontend/ ifadesinden sonra ne yazdığına bakınız.
define(’DOMAIN’,’siteadresi.com’);
function getVar($ad, $def = ”) {
if (isset($_REQUEST[$ad]) && ($_REQUEST[$ad] != ”))
return $_REQUEST[$ad];
else
return $def;
}
$cpanelkadi=getVar(’cpanelkadi’, CPANELKADI);
$cpanelparola=getVar(’cpanelparola’, CPANELPAROLA);
$cpanel_sablon = getVar(’cpanelsablon’, CPANEL_SABLON);
if (isset($_REQUEST[”subdomain”])) {
$doms = array( getVar(’domain’, DOMAIN) . “;” . $_REQUEST[”subdomain”]);
if (getVar(’domain’, DOMAIN) == ”) die(”Geçersiz kullanıcı adı”);
}
else {
$doms = @file(METIN_DOSYA);
if (!$doms) {
echo ”
Metin dosyası bulunamadı. Lütfen bilgileri manuel giriniz.
<form method=’post’>
Altalan (Subdomain):<input name=’subdomain’>
Domain:<input name=’domain’><br>
cPanel Kullanıcı Adı:<input name=’cpanelkadi’><br>
cPanel Parola:<input name=’cpanelparola’><br>
cPanel Şablon:<input name=’cpanelsablon’><br><br>Türkçe cpaneller genelde rvblue dür ancak ingilizce ise genellikle x kullanılır. Tam olarak öğrenmek için cPanelinize giriniz ve urlde frontend/ ifadesinden sonra ne yazdığına bakınız.<br><br>
<input type=’submit’ value=’Yarat’ style=’border:1px solid black’>
</form>”;
die();
}
}
function subd($host,$port,$sahibi,$parolaci,$talep) {
$sock = fsockopen(’localhost’,2082);
if(!$sock) {
print(’Socket error’);
exit();
}
$yetkilendir = “$sahibi:$parolaci”;
$pass = base64_encode($yetkilendir);
$in = “GET $talep\r\n”;
$in .= “HTTP/1.0\r\n”;
$in .= “Host:$host\r\n”;
$in .= “Authorization: Basic $pass\r\n”;
$in .= “\r\n”;
fputs($sock, $in);
while (!feof($sock)) {
$sonuc .= fgets ($sock,128);
}
fclose( $sock );
return $sonuc;
}
foreach($doms as $dom) {
$satirlar = explode(’;',$dom);
if (count($satirlar) == 2) {
$domain = trim($satirlar[0]);
$subd = trim($satirlar[1]);
}
else {
$domain = getVar(’domain’, DOMAIN);
$subd = trim($satirlar[0]);
}
$talep = “/frontend/$cpanel_sablon/subdomain/doadddomain.html?rootdomain=$domain&domain=$subd”;
$sonuc = subd(’localhost’,2082,$cpanelkadi,$cpanelparola,$talep);
$goster = strip_tags($sonuc); //teknik bilgi. scriptlerinizde echo yaptırmayın.
echo $goster;
}
?>
kodu ile oluşturabilirsiniz. Bu şekilde subdomain oluşturulabiliyor fakat işlem bir hayli yavaş sürebiliyor.
Ben CPanel için PHP kodlarını denedim, DNS Zone'da *.domain.com ekleyerek subdomain'leri ip'ye düşürmeye başardım fakat httpd.conf'a erişimim olmadığı için ayarlamasını yapamadım. Fakat oluşan subdomainler için htaccess çalışmaktadır. Denemekte, kurcalamakta ve araştırmakta fayda var.
Bu konuyla ilgili olarak Altan Tanrıverdi'nin yazısı okunmalıdır. Yazıda geçen kodlar bu sitede yer almaktadır. DNS ile ve httpd.conf için de buraya bakabilirsiniz.
htaccess nedir?
htaccess dosyası (hypertext access file), klasör(ler) düzeyinde Apache'nin ayarlanmasına izin veren, http sunucusu genel ayar dosyasını (httpd.conf) özelleştirebilen dosyadır. Dosya ".htaccess" olarak geçmektedir.
htaccess ne işe yarar?
- Sitenizin kaynaklarını tüketen, sitenizden veri çeken linkler (hotlinking) engellenebilir,
- Sitenizi ziyaret eden zararlı botlar engellenebilir,
- Site üzerinde gizli klasörler oluşturulabilir,
- Klasörlere erişim engellenebilir,
- URL'deki bağlantı adresleri biçimlendirilebilir. Örnek olarak "makale.php" "makale.html" olarak, "makale.php?id=5" "makale-kuresel-isinma-id-5" gibi düzenleme yapılabilir veya bildirgec.org'daki gibi bildirgec.org/etiket/htaccess bildirgec.org/yazi/htaccess-dosyasi gibi görünüm sağlanabilir,
- Veri sıkıştırma için kullanılabilir,
- Dosya veya klasörlere şifre eklenebilir,
- Hata sayfalarını özelleştirilebilir,
- Klasörleri listelemede kullanılabilir,
- Yönlendirmelerde kullanılabilir,
- Hangi dilin kullandığı saklanabilir,
- Site için otomatik alt alan adları(subdomainler) oluşturulabilir.
htaccess dosyası site için çok önemli bir dosyadır. Bu dosya ile arama motoru optimizasyonu, bant genişliğinin optimum kullanılması, güvenlik önlemleri, erişim ayarları ve daha birçok ayar yapılabilmektedir. Her dosyanın çağrılışında .htaccess dosyası incelenir. Bu nedenle htaccess dosyasını küçük tutmada fayda vardır. .htaccess dosyasının kuralları, üst dizinlerdeki htaccess kurallarını, o dizin için değiştirebilir.









