<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Leoman's blog &#187; Programlama</title>
	<atom:link href="http://leoman.gen.tr/category/programlama/feed/" rel="self" type="application/rss+xml" />
	<link>http://leoman.gen.tr</link>
	<description>bi blÃ¶g</description>
	<lastBuildDate>Mon, 28 Feb 2011 06:55:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>WordPress open_basedir iÃ§erisinde nasÄ±l?</title>
		<link>http://leoman.gen.tr/2009/06/wordpress-open_basedir-icerisinde-nasil/</link>
		<comments>http://leoman.gen.tr/2009/06/wordpress-open_basedir-icerisinde-nasil/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 15:31:49 +0000</pubDate>
		<dc:creator>leoman</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[open_basedir]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[safe_mod]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://leoman.gen.tr/?p=76</guid>
		<description><![CDATA[Nedendir bilinmez WordPress upload vb. iÅŸlemler iÃ§in kullandÄ±ÄŸÄ± Ã¶n tanÄ±mlÄ± dizin /tmp ÅŸeklindedir. Peki ya bir paylaÅŸÄ±mlÄ± hosting iÃ§erisinde WordPress kullanÄ±yor, upload_tmp_dir lokasyonunuz /tmp&#8217;den farklÄ± ve /tmp dizinine eriÅŸiminiz yoksa? Muhtemelen eklenti ve WordPress gÃ¼ncellemelerinde; Warning: file_exists(): open_basedir restriction in effect. File(/tmp//1245078931) is not within the allowed path(s): (/path/path/path/path) in /path/path/path/path/wp-includes/functions.php on line 1924 Warning: [...]]]></description>
			<content:encoded><![CDATA[<p>Nedendir bilinmez <a href="http://wordpress.org">WordPress</a> upload vb. iÅŸlemler iÃ§in kullandÄ±ÄŸÄ± Ã¶n tanÄ±mlÄ± dizin /tmp ÅŸeklindedir.</p>
<p>Peki ya bir paylaÅŸÄ±mlÄ± hosting iÃ§erisinde WordPress kullanÄ±yor, upload_tmp_dir lokasyonunuz /tmp&#8217;den farklÄ± ve /tmp dizinine eriÅŸiminiz yoksa?</p>
<p>Muhtemelen eklenti ve WordPress gÃ¼ncellemelerinde;</p>
<p><strong>Warning</strong>: file_exists(): <strong>open_basedir</strong> restriction in effect. File(/tmp//1245078931) is not within the allowed path(s): (/path/path/path/path) in /path/path/path/path/wp-includes/functions.php <strong>on line</strong> 1924</p>
<p><strong>Warning</strong>: touch(): <strong>open_basedir</strong> restriction in effect. File(/tmp/1245078931) is not within the allowed path(s): (/path/path/path/path) in /path/path/path/path/wp-admin/includes/file.php <strong>on line</strong> 174</p>
<p>benzeri hatalar dizisi ile karÅŸÄ±laÅŸÄ±rÄ±z.</p>
<p>Wordpress geliÅŸtiricileri wp-config.php dosyasÄ± iÃ§erisine bu opsiyonu Ã¶ntanÄ±mlÄ± olarak koymadÄ±klarÄ± ve not olarak eklemedikleri iÃ§in neleri deÄŸiÅŸtirmeniz gerektiÄŸi hakkÄ±nda da fikir sahibi olmanÄ±z da gÃ¼Ã§ olacaktÄ±r.</p>
<p>Bu problemi gidermek iÃ§in aÅŸaÄŸÄ±daki satÄ±rlarÄ± wp-config.php dosyasÄ±nÄ±n iÃ§erisine eklemeniz yeterli olacaktÄ±r.<br />
<code lang="bash"><br />
/**<br />
*<br />
*<br />
*<br />
**/<br />
define('WP_TEMP_DIR', ini_get('upload_tmp_dir'));<br />
putenv('TMPDIR=' . ini_get('upload_tmp_dir'));<br />
/**<br />
*<br />
*<br />
*<br />
**/<br />
</code></p>
<div style="height:66px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fleoman.gen.tr%2F2009%2F06%2Fwordpress-open_basedir-icerisinde-nasil%2F&amp;layout=box_count&amp;show_faces=false&amp;width=&amp;action=recommend&amp;colorscheme=light&amp;send=false&amp;height=62" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px; height:62px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:80px;"><div class="g-plusone" data-size="tall" data-href="http://leoman.gen.tr/2009/06/wordpress-open_basedir-icerisinde-nasil/" ></div></div><div class="really_simple_share_linkedin" style="width:100px;"><script type="IN/Share" data-counter="top" data-url="http://leoman.gen.tr/2009/06/wordpress-open_basedir-icerisinde-nasil/"></script></div><div class="really_simple_share_digg" style="width:100px;"><script type="text/javascript" src="http://widgets.digg.com/buttons.js"></script>
					<a class="DiggThisButton DiggMedium" href="http://digg.com/submit?url=http://leoman.gen.tr/2009/06/wordpress-open_basedir-icerisinde-nasil/&amp;title=WordPress open_basedir i&Atilde;&sect;erisinde nas&Auml;&plusmn;l?"></a></div><div class="really_simple_share_stumbleupon" style="width:100px;"><script type="text/javascript" src="http://www.stumbleupon.com/hostedbadge.php?s=5&amp;r=http://leoman.gen.tr/2009/06/wordpress-open_basedir-icerisinde-nasil/"></script></div><div class="really_simple_share_twitter" style="width:100px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" 
						data-text="WordPress open_basedir iÃ§erisinde nasÄ±l?" data-url="http://leoman.gen.tr/2009/06/wordpress-open_basedir-icerisinde-nasil/" 
						data-via="leventyalcinn"   data-related="leoman:The author of this post" ></a></div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://leoman.gen.tr/2009/06/wordpress-open_basedir-icerisinde-nasil/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mikrotik&#8217;te uzak noktaya otomatik yedek nasÄ±l alÄ±nÄ±r?</title>
		<link>http://leoman.gen.tr/2009/06/mikrotikte-uzak-noktaya-otomatik-yedek-nasil-alinir/</link>
		<comments>http://leoman.gen.tr/2009/06/mikrotikte-uzak-noktaya-otomatik-yedek-nasil-alinir/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 07:51:27 +0000</pubDate>
		<dc:creator>leoman</dc:creator>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Sistem YÃ¶netimi]]></category>
		<category><![CDATA[backup]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[mikrotik]]></category>
		<category><![CDATA[nasÄ±l]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[yedek]]></category>

		<guid isPermaLink="false">http://leoman.gen.tr/?p=72</guid>
		<description><![CDATA[Bir Ã§ok uzak noktada Mikrotik cihaz/PC&#8217;ye sahip olduÄŸumuzu dÃ¼ÅŸÃ¼nelim. BunlarÄ± belirli periyotlarla elle yedeklemek unutulma, dosya isimlerinde Ã§Ä±kacak karÄ±ÅŸÄ±klÄ±k vb. tÃ¼rlÃ¼ tÃ¼rlÃ¼ problem yÃ¼zÃ¼den pek mÃ¼mkÃ¼n olmayacak, ayrÄ±ca bu her noktaya baÄŸlanarak tek tek yedek almak ta ciddi bir zaman kaydÄ± olacaktÄ±r. Bunun yerine otomatik olarak Mikrotik&#8217;lere &#8220;Åžu kadar gÃ¼nde bir yedek al! AldÄ±ÄŸÄ±n yedekleri [...]]]></description>
			<content:encoded><![CDATA[<p>Bir Ã§ok uzak noktada Mikrotik cihaz/PC&#8217;ye sahip olduÄŸumuzu dÃ¼ÅŸÃ¼nelim. BunlarÄ± belirli periyotlarla elle yedeklemek unutulma, dosya isimlerinde Ã§Ä±kacak karÄ±ÅŸÄ±klÄ±k vb. tÃ¼rlÃ¼ tÃ¼rlÃ¼ problem yÃ¼zÃ¼den pek mÃ¼mkÃ¼n olmayacak, ayrÄ±ca bu her noktaya baÄŸlanarak tek tek yedek almak ta ciddi bir zaman kaydÄ± olacaktÄ±r.</p>
<p>Bunun yerine otomatik olarak Mikrotik&#8217;lere &#8220;Åžu kadar gÃ¼nde bir yedek al! AldÄ±ÄŸÄ±n yedekleri bana mail at!&#8221; diyebilme seÃ§eneÄŸiniz mevcut.</p>
<p>Bu iÅŸlem iÃ§in Ã¶ncelikle bir SMTP sunucuya sahip olmalÄ±, Mikrotik cihazlarÄ±nÄ±n bu SMTP server&#8217;a eriÅŸebilmesi, SMTP server&#8217;Ä±n da Mikrotik iÃ§in kullanÄ±cÄ± doÄŸrulamasÄ± gerektirmeden mailleri kabul edebilmesi gerekmektedir.</p>
<p>TÃ¼m bu ÅŸartlarÄ±n saÄŸlanmÄ±ÅŸ olduÄŸunu dÃ¼ÅŸÃ¼nÃ¼rsek, Mikrotik Ã¼zerinden yapÄ±lacak iÅŸ iki adÄ±mdan oluÅŸmakta. Birinci adÄ±m olarak kayÄ±tlÄ± bir script yaratma, ikinci adÄ±m olarak kayÄ±tlÄ± olan bu script&#8217;i belirli zaman aralÄ±klarÄ±nda Ã§alÄ±ÅŸtÄ±rmak.</p>
<p><code lang="bash"><br />
/system script add name="Oto-Yedek" \<br />
policy=ftp, read, write, policy, test \<br />
source="/system backup save=oto_yedek \<br />
/tool e-mail send body=\"yedek\" to=\"alici@domain.com\" file=\"oto_yedek\" \<br />
server=\"xxx.xxx.xxx.xxx\" from=\"gonderen@domain.com\" \<br />
subject=\"XXX Mikrotik Yedegi\""<br />
</code></p>
<p>Ä°le yeni Oto-Yedek adÄ±ndan bir yedekleme script&#8217;i oluÅŸturduk ve;</p>
<p><code lang="bash"><br />
/system scheduler add comment="Otomatik yedekleme scriptini zamanlar"\<br />
name="Oto-Yedek-Zamanla" on-event=Oto-Yedek \<br />
start-date="Jun/11/2009" start-time="01:00:00" interval="1d" \<br />
disabled=no<br />
</code><br />
zamanlamasÄ± ile hergÃ¼n saat gece 1&#8242;de yedekleme scriptinin Ã§alÄ±ÅŸmasÄ±nÄ± saÄŸlayabiliriz. Bu iÅŸlem sonucunda artÄ±k Mikrotik&#8217;e login olmaya gerek kalmadan otomatik olarak yedekler belirttiÄŸiniz e-mail adresine gelecek ve yedek alma zamanÄ±nÄ± sÄ±fÄ±ra indirecektir.</p>
<div style="height:66px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fleoman.gen.tr%2F2009%2F06%2Fmikrotikte-uzak-noktaya-otomatik-yedek-nasil-alinir%2F&amp;layout=box_count&amp;show_faces=false&amp;width=&amp;action=recommend&amp;colorscheme=light&amp;send=false&amp;height=62" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px; height:62px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:80px;"><div class="g-plusone" data-size="tall" data-href="http://leoman.gen.tr/2009/06/mikrotikte-uzak-noktaya-otomatik-yedek-nasil-alinir/" ></div></div><div class="really_simple_share_linkedin" style="width:100px;"><script type="IN/Share" data-counter="top" data-url="http://leoman.gen.tr/2009/06/mikrotikte-uzak-noktaya-otomatik-yedek-nasil-alinir/"></script></div><div class="really_simple_share_digg" style="width:100px;"><script type="text/javascript" src="http://widgets.digg.com/buttons.js"></script>
					<a class="DiggThisButton DiggMedium" href="http://digg.com/submit?url=http://leoman.gen.tr/2009/06/mikrotikte-uzak-noktaya-otomatik-yedek-nasil-alinir/&amp;title=Mikrotik&amp;#8217;te uzak noktaya otomatik yedek nas&Auml;&plusmn;l al&Auml;&plusmn;n&Auml;&plusmn;r?"></a></div><div class="really_simple_share_stumbleupon" style="width:100px;"><script type="text/javascript" src="http://www.stumbleupon.com/hostedbadge.php?s=5&amp;r=http://leoman.gen.tr/2009/06/mikrotikte-uzak-noktaya-otomatik-yedek-nasil-alinir/"></script></div><div class="really_simple_share_twitter" style="width:100px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" 
						data-text="Mikrotik&#8217;te uzak noktaya otomatik yedek nasÄ±l alÄ±nÄ±r?" data-url="http://leoman.gen.tr/2009/06/mikrotikte-uzak-noktaya-otomatik-yedek-nasil-alinir/" 
						data-via="leventyalcinn"   data-related="leoman:The author of this post" ></a></div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://leoman.gen.tr/2009/06/mikrotikte-uzak-noktaya-otomatik-yedek-nasil-alinir/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL&#8217;de karakter seti problemi yoktur!</title>
		<link>http://leoman.gen.tr/2009/06/mysqlde-karakter-seti-problemi-yoktur/</link>
		<comments>http://leoman.gen.tr/2009/06/mysqlde-karakter-seti-problemi-yoktur/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 16:44:57 +0000</pubDate>
		<dc:creator>leoman</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Sistem YÃ¶netimi]]></category>
		<category><![CDATA[charset]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[nasÄ±l]]></category>
		<category><![CDATA[problem]]></category>

		<guid isPermaLink="false">http://leoman.gen.tr/?p=64</guid>
		<description><![CDATA[Bir Ã§ok insan tarafÄ±ndan ÅŸu sÃ¶zleri duyuyorum;Â  &#8220;MySQL&#8217;de veritabanÄ± aktarÄ±nca karakter problemi Ã§Ä±kÄ±yor.&#8221;, &#8220;MySQL&#8217;de karakter seti problemi var.&#8221; HayÄ±r efendim MySQL&#8217;de karakter seti problemi yoktur, MySQL&#8217;in huyunu suyunu bilmeyen insan vardÄ±r. MySQL veritabanÄ± Ã§alÄ±ÅŸmasÄ±nda iki tane farklÄ± karakter seti kullanÄ±r. Bunlardan birincisi veritabanÄ± motoruna (database engine; MyISAM, InnoDB) verilir. Ä°kincil olarak baÄŸlantÄ± karakter setidir ve [...]]]></description>
			<content:encoded><![CDATA[<p>Bir Ã§ok insan tarafÄ±ndan ÅŸu sÃ¶zleri duyuyorum;Â  &#8220;MySQL&#8217;de veritabanÄ± aktarÄ±nca karakter problemi Ã§Ä±kÄ±yor.&#8221;, &#8220;MySQL&#8217;de karakter seti problemi var.&#8221;</p>
<p>HayÄ±r efendim MySQL&#8217;de karakter seti problemi yoktur, MySQL&#8217;in huyunu suyunu bilmeyen insan vardÄ±r.</p>
<p>MySQL veritabanÄ± Ã§alÄ±ÅŸmasÄ±nda iki tane farklÄ± karakter seti kullanÄ±r. Bunlardan birincisi veritabanÄ± motoruna (database engine; MyISAM, InnoDB) verilir. Ä°kincil olarak baÄŸlantÄ± karakter setidir ve MySQL Client&#8217;a verilir.</p>
<p>Ã–ntanÄ±mlÄ± MySQL kurulumlarÄ±nda (Ã–rneÄŸin; Distro repolarÄ±ndan, cPanel, Plesk, vb. hosting otomasyon yazÄ±lÄ±mlarÄ± ile)Â  baÄŸlantÄ± ve veritabanÄ± karakter seti latin1 olarak gelmektedir.</p>
<p>En sÄ±k yapÄ±lan hatayÄ± ÅŸÃ¶yle basit bir hatadÄ±r. KiÅŸi gider veritabanÄ±nÄ± UTF-8 olarak yaratÄ±r. Sonra PHP ile sadece baÄŸlanÄ±r ve sÃ¼rekli veri yazar fakat bu veriyi yazdÄ±ran zat-Ä± muhterem bu sunucuya baÄŸlantÄ± sÄ±rasÄ±nda MySQL Client&#8217;Ä±n kullandÄ±ÄŸÄ± karakter seti merak etmez. Bunu irdelemediÄŸi iÃ§in de UTF-8 veritabanÄ±na Latin1 ile baÄŸlanÄ±r ve verileri bÃ¶yle yazar. SonuÃ§! absÃ¼rt karakterlere sahip bir veritabanÄ±.</p>
<p>Ne yapÄ±yormuÅŸuz demek ki, veritabanÄ±nÄ± istediÄŸimiz karakter seti ile yaratÄ±yormuÅŸuz, daha sonra baÄŸlanÄ±rken de veritabanÄ±nÄ±n sahip olduÄŸu karakter seti ile baÄŸlanÄ±yormuÅŸuz. Evet tam olarak bÃ¶yle.</p>
<p>Mesela UTF-8 bir veritabanÄ± yarattÄ±ÄŸÄ±mÄ±zÄ± varsayalÄ±m. Buna baÄŸlanÄ±rken kesinlikle ÅŸunu yapmÄ±yoruz;<br />
<code lang="php"><br />
mysql_connect("server","kullanici","sifre");<br />
mysql_select_db("veritabani");<br />
mysql_query("insert into tablo ('a','b') values ('Ã‡Ã–PÄžÃ–ÃœÄžÃœ','Ä°ÅžÃœÄžÃœMÃ–MÃ–M')");<br />
</code><br />
Bunun yerine; baÄŸlantÄ±dan hemen sonra bir seferlik;<br />
<code lang="php"><br />
mysql_connect("server","kullanici","sifre");<br />
mysql_select_db("veritabani");<br />
mysql_query("SET NAMES UTF8");<br />
mysql_query("SET CHARACTER SET UTF8");</p>
<p>mysql_query("insert into tablo ('a','b') values ('Ã‡Ã–PÄžÃ–ÃœÄžÃœ','Ä°ÅžÃœÄžÃœMÃ–MÃ–M')");<br />
</code><br />
durumu MySQL&#8217;e bildiriyoruz.</p>
<p>Tabi ki bir projede 50 yerde baÄŸlantÄ± kuranlar bu noktada OOP&#8217;nin neden varolduÄŸunu anlayabilirler.</p>
<p>- &#8220;Ee bilmem ne SQL Server bunu otomatik seÃ§iyormuÅŸ&#8221;.</p>
<p>- Peki multi collation olan bu sistemde farklÄ± farklÄ± tablolar iÃ§in ne yapmayÄ± dÃ¼ÅŸÃ¼nÃ¼yorsun? diye sormazlar mÄ± kiÅŸiye.</p>
<p>Ã–nemli olan nasÄ±l yediÄŸin deÄŸil, o yoÄŸurdu yemek!</p>
<div style="height:66px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fleoman.gen.tr%2F2009%2F06%2Fmysqlde-karakter-seti-problemi-yoktur%2F&amp;layout=box_count&amp;show_faces=false&amp;width=&amp;action=recommend&amp;colorscheme=light&amp;send=false&amp;height=62" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px; height:62px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:80px;"><div class="g-plusone" data-size="tall" data-href="http://leoman.gen.tr/2009/06/mysqlde-karakter-seti-problemi-yoktur/" ></div></div><div class="really_simple_share_linkedin" style="width:100px;"><script type="IN/Share" data-counter="top" data-url="http://leoman.gen.tr/2009/06/mysqlde-karakter-seti-problemi-yoktur/"></script></div><div class="really_simple_share_digg" style="width:100px;"><script type="text/javascript" src="http://widgets.digg.com/buttons.js"></script>
					<a class="DiggThisButton DiggMedium" href="http://digg.com/submit?url=http://leoman.gen.tr/2009/06/mysqlde-karakter-seti-problemi-yoktur/&amp;title=MySQL&amp;#8217;de karakter seti problemi yoktur!"></a></div><div class="really_simple_share_stumbleupon" style="width:100px;"><script type="text/javascript" src="http://www.stumbleupon.com/hostedbadge.php?s=5&amp;r=http://leoman.gen.tr/2009/06/mysqlde-karakter-seti-problemi-yoktur/"></script></div><div class="really_simple_share_twitter" style="width:100px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" 
						data-text="MySQL&#8217;de karakter seti problemi yoktur!" data-url="http://leoman.gen.tr/2009/06/mysqlde-karakter-seti-problemi-yoktur/" 
						data-via="leventyalcinn"   data-related="leoman:The author of this post" ></a></div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://leoman.gen.tr/2009/06/mysqlde-karakter-seti-problemi-yoktur/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mikrotik betiklerinde dÃ¶ngÃ¼ler ve koÅŸullar</title>
		<link>http://leoman.gen.tr/2009/01/mikrotik-betiklerinde-donguler-ve-kosullar/</link>
		<comments>http://leoman.gen.tr/2009/01/mikrotik-betiklerinde-donguler-ve-kosullar/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 06:34:45 +0000</pubDate>
		<dc:creator>leoman</dc:creator>
				<category><![CDATA[Gezegen]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Sistem YÃ¶netimi]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[mikrotik]]></category>
		<category><![CDATA[nasÄ±l]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://leoman.gen.tr/?p=14</guid>
		<description><![CDATA[Belli bir Ã¶ÄŸe dizisi iÃ§in bir Ã¶zelliÄŸi belli koÅŸullara gÃ¶re ayarlamamÄ±z gerekiyorsa bunu winbox Ã¼zerinden defalarca tÄ±klayarak yapmak bir Ã§Ã¶zÃ¼m olabileceÄŸi gibi aynÄ± iÅŸi bir betik aracÄ±lÄ±ÄŸÄ± ile de yapmak mÃ¼mkÃ¼n olacaktÄ±r. Kabuk Ã¼zerinde koÅŸul dizilimi ÅŸu ÅŸekildedir. [admin@Mikrotik] > :global deger1 "degerli" [admin@Mikrotik] > :global deger2 "degersiz" [admin@Mikrotik] > :if ($deger1 = $deger2) do={:put [...]]]></description>
			<content:encoded><![CDATA[<p>Belli bir Ã¶ÄŸe dizisi iÃ§in bir Ã¶zelliÄŸi belli koÅŸullara gÃ¶re ayarlamamÄ±z gerekiyorsa bunu winbox Ã¼zerinden defalarca tÄ±klayarak yapmak bir Ã§Ã¶zÃ¼m olabileceÄŸi gibi aynÄ± iÅŸi bir betik aracÄ±lÄ±ÄŸÄ± ile de yapmak mÃ¼mkÃ¼n olacaktÄ±r.</p>
<p>Kabuk Ã¼zerinde koÅŸul dizilimi ÅŸu ÅŸekildedir.</p>
<p><code lang="bash"><br />
[admin@Mikrotik] > :global deger1 "degerli"<br />
[admin@Mikrotik] > :global deger2 "degersiz"<br />
[admin@Mikrotik] > :if ($deger1 = $deger2) do={:put "Eslesiyor"}\<br />
[admin@Mikrotik] > else={:put "Eslesmiyor"}<br />
</code></p>
<p>Bu ÅŸekilde ÅŸartlara gÃ¶re seÃ§imimizi yapabilir ve iÅŸlemlerimizi gerÃ§ekleÅŸtirebiliriz.</p>
<p>DÃ¶ngÃ¼ler; belirtmiÅŸ olduÄŸumuz durum saÄŸlanÄ±ncaya kadar iÅŸlem tekrarÄ±dÄ±r.<br />
Kabuk iÃ§erisindeki sÃ¶z dizimi ise ÅŸu ÅŸekildedir;</p>
<p><code lang="bash"><br />
[admin@Mikrotik] > :for i from=1 to=10 do={:put $i}<br />
</code></p>
<p>ile 1&#8242;den 10&#8242;a kadar sayÄ±larÄ± ekrana bastÄ±rabiliriz.</p>
<p>Daha reel bir uygulama yapacak olursak kuyruk listemizde ekli olan tÃ¼m kurallarÄ±n maksimum download ve upload&#8217;Ä±nÄ± 1Mb ile limitlendirelim;</p>
<p><code lang="bash"><br />
[admin@Mikrotik] > :local queueLen [ :len [ /queue simple find ]]; \<br />
:for i from=0 to=$queueLen do={ /queue simple set $i max-limit=1000000/1000000}<br />
</code></p>
<p>Bu Ã¶rnekte Ã¶ncelikle :len ile tÃ¼m kuyrukta yer alan kurallarÄ±n sayÄ±sÄ± aldÄ±k. Bu deÄŸeri daha sonra kullanabilmek iÃ§in lokal bir deÄŸiÅŸken olan queueLen&#8217;e atadÄ±k. Bir sonraki komut dizesinde ise tÃ¼m kuyruk boyunca max-limit deÄŸerini 1Mb olarak atamÄ±ÅŸ olduk.</p>
<p>Yine diÄŸer programlama dillerinden aÅŸina olduÄŸumuz diziler Ã¼zerinde Ã§alÄ±ÅŸabilmeyi mÃ¼mkÃ¼n kÄ±lan foreach dÃ¶ngÃ¼sÃ¼nÃ¼ de kabuk Ã¼zerinde kullanabilmekteyiz.</p>
<p><code lang="bash"></p>
<p>[admin@Mikrotik] > :local toplamIP [/ip address find interface="ether1"];\<br />
:foreach idIP in=$toplamIP do={\<br />
:local durum [/ip address get $idIP disabled];\<br />
:local IPadresi [/ip address get $idIP address];\<br />
:if ($durum="false") do={:put ($IPadresi . " Kapali\n")}\<br />
else={:put ($IPadresi . " Acik\n")}}<br />
</code></p>
<p>Burdaki Ã¶rnekle beraber ether1 Ã¼zerindeki IP adreslerinin KapalÄ± ya da AÃ§Ä±k olmasÄ± durumuna dair bir listesi alÄ±nabilir. </p>
<p>Sadece belli sayÄ±daki iÅŸlemler iÃ§in deÄŸil belirli bir koÅŸula gÃ¶re iÅŸleyebilecek bir dÃ¶ngÃ¼mÃ¼z de var. Bu dÃ¶ngÃ¼mÃ¼z do..while ya da while&#8230;do dÃ¶ngÃ¼sÃ¼. Bu dÃ¶ngÃ¼ye ait sÃ¶z dizilimi de ÅŸu ÅŸekildedir.</p>
<p><code lang="bash"></p>
<p>[admin@Mikrotik] > :global ethernetCount [:len [/interface find type=ether]]; :global $i 0;<br />
[admin@Mikrotik] > :while ($i < $ethernetCount) do={\<br />
:put [/interface ethernet $i name]; :set i ($i+1);}<br />
</code></p>
<p><code lang="bash"><br />
[admin@Mikrotik] > :global i 11;<br />
[admin@Mikrotik] > :do {:put $i; :set i ($i - 1);} while=($i > 0)<br />
[admin@Mikrotik] > :unset i;<br />
</code></p>
<div style="height:66px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fleoman.gen.tr%2F2009%2F01%2Fmikrotik-betiklerinde-donguler-ve-kosullar%2F&amp;layout=box_count&amp;show_faces=false&amp;width=&amp;action=recommend&amp;colorscheme=light&amp;send=false&amp;height=62" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px; height:62px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:80px;"><div class="g-plusone" data-size="tall" data-href="http://leoman.gen.tr/2009/01/mikrotik-betiklerinde-donguler-ve-kosullar/" ></div></div><div class="really_simple_share_linkedin" style="width:100px;"><script type="IN/Share" data-counter="top" data-url="http://leoman.gen.tr/2009/01/mikrotik-betiklerinde-donguler-ve-kosullar/"></script></div><div class="really_simple_share_digg" style="width:100px;"><script type="text/javascript" src="http://widgets.digg.com/buttons.js"></script>
					<a class="DiggThisButton DiggMedium" href="http://digg.com/submit?url=http://leoman.gen.tr/2009/01/mikrotik-betiklerinde-donguler-ve-kosullar/&amp;title=Mikrotik betiklerinde d&Atilde;&para;ng&Atilde;&frac14;ler ve ko&Aring;Ÿullar"></a></div><div class="really_simple_share_stumbleupon" style="width:100px;"><script type="text/javascript" src="http://www.stumbleupon.com/hostedbadge.php?s=5&amp;r=http://leoman.gen.tr/2009/01/mikrotik-betiklerinde-donguler-ve-kosullar/"></script></div><div class="really_simple_share_twitter" style="width:100px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" 
						data-text="Mikrotik betiklerinde dÃ¶ngÃ¼ler ve koÅŸullar" data-url="http://leoman.gen.tr/2009/01/mikrotik-betiklerinde-donguler-ve-kosullar/" 
						data-via="leventyalcinn"   data-related="leoman:The author of this post" ></a></div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://leoman.gen.tr/2009/01/mikrotik-betiklerinde-donguler-ve-kosullar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mikrotik betik programcÄ±lÄ±ÄŸÄ± &#8211; DeÄŸiÅŸkenler</title>
		<link>http://leoman.gen.tr/2009/01/mikrotik-betik-programciligi-degiskenler/</link>
		<comments>http://leoman.gen.tr/2009/01/mikrotik-betik-programciligi-degiskenler/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 04:08:07 +0000</pubDate>
		<dc:creator>leoman</dc:creator>
				<category><![CDATA[Gezegen]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Sistem YÃ¶netimi]]></category>
		<category><![CDATA[betik]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[mikrotik]]></category>
		<category><![CDATA[nasÄ±l]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://leoman.gen.tr/?p=39</guid>
		<description><![CDATA[Mikrotik betik dili Ã¼zerinde iki tip deÄŸiÅŸken bulunmaktadÄ±r. global &#8211; TÃ¼m aktif kullanÄ±cÄ±lar ve betikler tarafÄ±ndan eriÅŸilebilen deÄŸiÅŸken tipidir. global deyimi ile tanÄ±mlanÄ±r. local &#8211; Sadece tanÄ±mlandÄ±ÄŸÄ± blok iÃ§erisinden eriÅŸilebilen deÄŸiÅŸken tipidir, yine local deyimi ile tanÄ±mlanÄ±r. [admin@Mikrotik] > :local testDegiskeni; :set testDegiskeni "Test ediyoruz"; :put $testDegiskeni AynÄ± kod bloÄŸu iÃ§erisinde Ã¶ncelikle local bir testDegiskeni [...]]]></description>
			<content:encoded><![CDATA[<p>Mikrotik betik dili Ã¼zerinde iki tip deÄŸiÅŸken bulunmaktadÄ±r.</p>
<ul>
<li>global &#8211; TÃ¼m aktif kullanÄ±cÄ±lar ve betikler tarafÄ±ndan eriÅŸilebilen deÄŸiÅŸken tipidir. global deyimi ile tanÄ±mlanÄ±r.</li>
<li>local &#8211; Sadece tanÄ±mlandÄ±ÄŸÄ± blok iÃ§erisinden eriÅŸilebilen deÄŸiÅŸken tipidir, yine local deyimi ile tanÄ±mlanÄ±r.</li>
</ul>
<p><code lang="bash"><br />
[admin@Mikrotik] > :local testDegiskeni; :set testDegiskeni "Test ediyoruz"; :put $testDegiskeni<br />
</code><br />
AynÄ± kod bloÄŸu iÃ§erisinde Ã¶ncelikle local bir testDegiskeni adÄ±nda bir deÄŸiÅŸken oluÅŸturduk, deÄŸerini Test ediyoruz olarak atadÄ±k, daha sonrada deÄŸiÅŸkenimizin deÄŸerini ekrana bastÄ±rdÄ±k.</p>
<p>Peki bu deÄŸiÅŸkeni daha birden fazla satÄ±rÄ± ve/veya kod bloÄŸu olan bir betik iÃ§erisinde kullanma ihtiyacÄ±mÄ±z olsa idi?<br />
<code lang="bash"><br />
[admin@Mikrotik] > :global testDegiskeni<br />
[admin@Mikrotik] > :set testDegiskeni "Mikrotik dunyasina hosgeldin\n"<br />
[admin@Mikrotik] > :for i from=1 to=3 do={:put $testDegiskeni}<br />
</code><br />
Bu Ã¶rnekte de gÃ¶rÃ¼lebileceÄŸi gibi testDegiskeni adÄ±nda bir global deÄŸiÅŸken tanÄ±mladÄ±k ve daha sonraki kod bloklarÄ±mÄ±zdan deÄŸiÅŸkenimize ulaÅŸarak gerekli iÅŸlemleri yaptÄ±k.</p>
<div style="height:66px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fleoman.gen.tr%2F2009%2F01%2Fmikrotik-betik-programciligi-degiskenler%2F&amp;layout=box_count&amp;show_faces=false&amp;width=&amp;action=recommend&amp;colorscheme=light&amp;send=false&amp;height=62" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px; height:62px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:80px;"><div class="g-plusone" data-size="tall" data-href="http://leoman.gen.tr/2009/01/mikrotik-betik-programciligi-degiskenler/" ></div></div><div class="really_simple_share_linkedin" style="width:100px;"><script type="IN/Share" data-counter="top" data-url="http://leoman.gen.tr/2009/01/mikrotik-betik-programciligi-degiskenler/"></script></div><div class="really_simple_share_digg" style="width:100px;"><script type="text/javascript" src="http://widgets.digg.com/buttons.js"></script>
					<a class="DiggThisButton DiggMedium" href="http://digg.com/submit?url=http://leoman.gen.tr/2009/01/mikrotik-betik-programciligi-degiskenler/&amp;title=Mikrotik betik programc&Auml;&plusmn;l&Auml;&plusmn;&Auml;Ÿ&Auml;&plusmn; &amp;#8211; De&Auml;Ÿi&Aring;Ÿkenler"></a></div><div class="really_simple_share_stumbleupon" style="width:100px;"><script type="text/javascript" src="http://www.stumbleupon.com/hostedbadge.php?s=5&amp;r=http://leoman.gen.tr/2009/01/mikrotik-betik-programciligi-degiskenler/"></script></div><div class="really_simple_share_twitter" style="width:100px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" 
						data-text="Mikrotik betik programcÄ±lÄ±ÄŸÄ± &#8211; DeÄŸiÅŸkenler" data-url="http://leoman.gen.tr/2009/01/mikrotik-betik-programciligi-degiskenler/" 
						data-via="leventyalcinn"   data-related="leoman:The author of this post" ></a></div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://leoman.gen.tr/2009/01/mikrotik-betik-programciligi-degiskenler/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mikrotik Ã¼zerinde betik programcÄ±lÄ±ÄŸÄ±</title>
		<link>http://leoman.gen.tr/2009/01/mikrotik-uzerinde-betik-programciligi/</link>
		<comments>http://leoman.gen.tr/2009/01/mikrotik-uzerinde-betik-programciligi/#comments</comments>
		<pubDate>Tue, 20 Jan 2009 04:05:48 +0000</pubDate>
		<dc:creator>leoman</dc:creator>
				<category><![CDATA[Gezegen]]></category>
		<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Sistem YÃ¶netimi]]></category>
		<category><![CDATA[betik]]></category>
		<category><![CDATA[how to]]></category>
		<category><![CDATA[mikrotik]]></category>
		<category><![CDATA[nasÄ±l]]></category>
		<category><![CDATA[scripting]]></category>

		<guid isPermaLink="false">http://leoman.gen.tr/?p=32</guid>
		<description><![CDATA[Mikrotik bildiÄŸiniz Ã¼zre kolay kullanÄ±mÄ± iÃ§in gÃ¼zel bir gÃ¶rsel kullanÄ±cÄ± arayÃ¼zÃ¼ne sahiptir.Â  Bu arayÃ¼z sayesinde Ã§ok kolay ayarlanabilen, takip edilebilen, kullanÄ±cÄ± dostu bir iÅŸletim sistmidir. Bu kadar kolaylÄ±k arasÄ±nda ya kendimize/duruma Ã¶zel iÅŸlemler yapmak istersek? Ya aynÄ± iÅŸlemi defalarca yapmak zorunda isek? Ya da bir iÅŸlemi sayÄ±sÄ±z kere belirli aralÄ±klarla yapmak zorunda isek? Bu kadar [...]]]></description>
			<content:encoded><![CDATA[<p>Mikrotik bildiÄŸiniz Ã¼zre kolay kullanÄ±mÄ± iÃ§in gÃ¼zel bir gÃ¶rsel kullanÄ±cÄ± arayÃ¼zÃ¼ne sahiptir.Â  Bu arayÃ¼z sayesinde Ã§ok kolay ayarlanabilen, takip edilebilen, kullanÄ±cÄ± dostu bir iÅŸletim sistmidir.</p>
<p>Bu kadar kolaylÄ±k arasÄ±nda ya kendimize/duruma Ã¶zel iÅŸlemler yapmak istersek? Ya aynÄ± iÅŸlemi defalarca yapmak zorunda isek? Ya da bir iÅŸlemi sayÄ±sÄ±z kere belirli aralÄ±klarla yapmak zorunda isek?</p>
<p>Bu kadar esnek bir sistem tabi ki de buna da imkan tanÄ±yacaktÄ±r. Mikrotik gÃ¼Ã§lÃ¼ kabuÄŸu sayesinde tÃ¼m iÅŸlerinizi otomatik hale getirmenize ya da durumlara Ã¶zel Ã§areler Ã¼retmenize yardÄ±mcÄ± olacaktÄ±r.Â  Kabuk Ã¼zerinden (Telnet/SSH/Winbox/Serial) iÅŸinize uygun bir betik yazarak dilediÄŸiniz gibi tÃ¼m iÅŸlemlerinizi gerÃ§ekleÅŸtirebilirsiniz.</p>
<p>Genel anlamda kullanacaÄŸÄ±mÄ±z kabuk *nix Ã¼zerinde yer alan kabuklardan pek te farklÄ± deÄŸildir. Bash ya da sh&#8217;ta kullanmÄ±ÅŸ olduÄŸumuz &#8220;\&#8221;, &#8220;;&#8221; ,&#8221;#&#8221;,&#8221;{}&#8221;,&#8221;[]&#8220;Â  sÄ±nÄ±rlayÄ±cÄ±lar pek fark olmadan yine bu kabuk Ã¼zerinde kullanÄ±labilir.</p>
<h2><strong>Veri tipleri</strong></h2>
<p>Betik yazÄ±mÄ± sÄ±rasÄ±nda sÄ±k sÄ±k kullanacaÄŸÄ±mÄ±z deÄŸiÅŸkenler iÃ§in Ã¶nceden belirlenmiÅŸ tipler mevcuttur. Bunlar;</p>
<ul>
<li>number &#8211; 64 bitlik Integer tipi deÄŸiÅŸken tÃ¼rÃ¼ (iÅŸaretli +/-), aynÄ± zamanda hexadecimal veri giriÅŸi de mÃ¼mkÃ¼ndÃ¼r.</li>
<li>boolean &#8211; doÄŸru/yanlÄ±ÅŸ veri tipi, true ya da false deÄŸerlerini alabilmektedir.</li>
<li>string &#8211; karakter dizisidir. &#8220;test verisi&#8221; gibi bir deÄŸer alabilir.</li>
<li>IP &#8211; IP adresi barÄ±ndÄ±rabilen veri tipidir.</li>
<li>time &#8211; tarih ve zaman tutan veri tipidir.</li>
<li>array &#8211; dizi verileri tutabilen veri tipidir.</li>
<li>nil &#8211; Ã¶ntanÄ±mlÄ± veri tipidir, deÄŸiÅŸken deÄŸer verilmediÄŸi sÃ¼rece deÄŸeri nil&#8217;dir.</li>
</ul>
<h2><strong>AyrÄ±mlama iÅŸaretleri</strong></h2>
<ul>
<li>\&#8221;Â  Â Â Â  Â -Â  Ã§ift tÄ±rnak</li>
<li>\\ Â Â Â  &#8211; ters bÃ¶lÃ¼</li>
<li>\n Â Â Â  &#8211; yeni satÄ±r</li>
<li>\r Â Â Â  &#8211; satÄ±r baÅŸÄ±</li>
<li>\t Â Â Â  &#8211; yatay sekme</li>
<li>\$</li>
<li>\?</li>
<li>\_ Â Â Â  &#8211; boÅŸluk</li>
<li>\a Â Â Â  &#8211; zil</li>
<li>\b Â Â Â  &#8211; gerisilme</li>
<li>\f Â Â Â  &#8211; sayfa ileri</li>
<li>\v Â Â Â  &#8211; yatay sekme</li>
<li>\xx Â Â Â  &#8211; onaltÄ±lÄ±k dÃ¼zende deÄŸer</li>
</ul>
<h2><strong>OperatÃ¶rler</strong></h2>
<h3>Aritmetiksel OperatÃ¶rler</h3>
<ul>
<li>+Â  toplama</li>
<li>- Â  Ã§Ä±karna</li>
<li>/Â  bÃ¶lme</li>
<li>*Â  Ã§arpma</li>
<li>-Â  negatif</li>
</ul>
<h3>KarÅŸÄ±laÅŸtÄ±rma OperatÃ¶rleri</h3>
<ul>
<li>&lt; kÃ¼Ã§Ã¼kse</li>
<li>&gt; bÃ¼yÃ¼kse</li>
<li>&lt;= kÃ¼Ã§Ã¼k ve eÅŸitse</li>
<li>&gt;= bÃ¼yÃ¼k ve eÅŸitse</li>
<li>= eÅŸitse</li>
<li>!= eÅŸit deÄŸilse</li>
</ul>
<h3>MantÄ±ksal OperatÃ¶rler</h3>
<ul>
<li>&#8220;!&#8221; / &#8220;not&#8221;Â  deÄŸilse</li>
<li>&#8220;&amp;&amp;&#8221; / &#8220;and&#8221; ve</li>
<li>&#8220;||&#8221; / &#8220;or&#8221; veya</li>
</ul>
<h3>Bitsel OperatÃ¶rler</h3>
<p>Bitsel operatÃ¶rler yanlÄ±zca number ve IP veritiplerindeki deÄŸiÅŸkenler/deÄŸerler iÃ§in kullanÄ±labilmektedir.</p>
<ul>
<li>&#8220;~&#8221;Â  deÄŸil, bitin tersini alma</li>
<li>&#8220;&amp;&#8221; ve (1 ve iÅŸleminde etkisiz, 0 biti ise yutan elemandÄ±r)</li>
<li>&#8220;|&#8221; veya (0 ve iÅŸleminde etkisiz, 1 biti ise yutan elemandÄ±r)</li>
<li>&#8220;^&#8221; Ã¶zel veya (aynÄ± bitler iÃ§in 0, farklÄ± bitler iÃ§in 1 elde eder)</li>
<li>&#8220;&lt;&lt;&#8221; sola kaydÄ±rmaÂ  (belirtilen deÄŸer kadar bitleri sola kaydÄ±rÄ±r)</li>
<li>&#8220;&gt;&gt;&#8221; saÄŸa kaydÄ±rma (belirtilen deÄŸer kadar bitleri saÄŸa kaydÄ±rÄ±r)</li>
</ul>
<h3>BirleÅŸtirme operatÃ¶rleri</h3>
<ul>
<li>&#8220;.&#8221; Ä°ki karakter dizisini birbirine baÄŸlar.</li>
<li>&#8220;,&#8221; Dizi elemanlarÄ±nÄ± birbiri ardÄ±na sÄ±ralar/Diziye yeni deÄŸer ekler.</li>
</ul>
<div style="height:66px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fleoman.gen.tr%2F2009%2F01%2Fmikrotik-uzerinde-betik-programciligi%2F&amp;layout=box_count&amp;show_faces=false&amp;width=&amp;action=recommend&amp;colorscheme=light&amp;send=false&amp;height=62" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px; height:62px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:80px;"><div class="g-plusone" data-size="tall" data-href="http://leoman.gen.tr/2009/01/mikrotik-uzerinde-betik-programciligi/" ></div></div><div class="really_simple_share_linkedin" style="width:100px;"><script type="IN/Share" data-counter="top" data-url="http://leoman.gen.tr/2009/01/mikrotik-uzerinde-betik-programciligi/"></script></div><div class="really_simple_share_digg" style="width:100px;"><script type="text/javascript" src="http://widgets.digg.com/buttons.js"></script>
					<a class="DiggThisButton DiggMedium" href="http://digg.com/submit?url=http://leoman.gen.tr/2009/01/mikrotik-uzerinde-betik-programciligi/&amp;title=Mikrotik &Atilde;&frac14;zerinde betik programc&Auml;&plusmn;l&Auml;&plusmn;&Auml;Ÿ&Auml;&plusmn;"></a></div><div class="really_simple_share_stumbleupon" style="width:100px;"><script type="text/javascript" src="http://www.stumbleupon.com/hostedbadge.php?s=5&amp;r=http://leoman.gen.tr/2009/01/mikrotik-uzerinde-betik-programciligi/"></script></div><div class="really_simple_share_twitter" style="width:100px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" 
						data-text="Mikrotik Ã¼zerinde betik programcÄ±lÄ±ÄŸÄ±" data-url="http://leoman.gen.tr/2009/01/mikrotik-uzerinde-betik-programciligi/" 
						data-via="leventyalcinn"   data-related="leoman:The author of this post" ></a></div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://leoman.gen.tr/2009/01/mikrotik-uzerinde-betik-programciligi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SEO, .htaccess ve klasÃ¶r deÄŸiÅŸiklikleri</title>
		<link>http://leoman.gen.tr/2008/12/seo-htaccess-ve-klasor-degisiklikleri/</link>
		<comments>http://leoman.gen.tr/2008/12/seo-htaccess-ve-klasor-degisiklikleri/#comments</comments>
		<pubDate>Tue, 16 Dec 2008 01:22:42 +0000</pubDate>
		<dc:creator>leoman</dc:creator>
				<category><![CDATA[Programlama]]></category>
		<category><![CDATA[Sistem YÃ¶netimi]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[http durum kodlarÄ±]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[rewrite]]></category>
		<category><![CDATA[seo]]></category>

		<guid isPermaLink="false">http://leoman.gen.tr/?p=9</guid>
		<description><![CDATA[Blog&#8217;umu kaybettiÄŸimi Ã§ok geÃ§ farkettikten sonra haliyle arama motorlarÄ±nÄ±n da artÄ±k blog&#8217;umu yanlÄ±ÅŸ iÃ§erikleri ve yanlÄ±ÅŸ linkleri ile gÃ¶sterir durum olduÄŸunu anladÄ±m. Arama motorlarÄ±nÄ±n, tarama sÄ±rasÄ±nda defalarca 404 hatasÄ± ile karÅŸÄ±laÅŸmaktan hoÅŸlanmayacaÄŸÄ± iÃ§in buna SEO dostu bir Ã§Ã¶zÃ¼m bulmak gerekmek idi. GidiÅŸata gÃ¶re ÅŸanslÄ± olduÄŸum noktalar sÄ±rasÄ± ile Apache gibi kolay esneyebilen yapÄ±da bir web [...]]]></description>
			<content:encoded><![CDATA[<p>Blog&#8217;umu kaybettiÄŸimi Ã§ok geÃ§ farkettikten sonra haliyle <a href="http://tr.wikipedia.org/wiki/Arama_Motoru">arama motorlarÄ±nÄ±n</a> da artÄ±k blog&#8217;umu yanlÄ±ÅŸ iÃ§erikleri ve yanlÄ±ÅŸ linkleri ile gÃ¶sterir durum olduÄŸunu anladÄ±m. Arama motorlarÄ±nÄ±n, tarama sÄ±rasÄ±nda defalarca <a href="http://tr.wikipedia.org/wiki/404_error">404</a> hatasÄ± ile karÅŸÄ±laÅŸmaktan hoÅŸlanmayacaÄŸÄ± iÃ§in buna <a href="http://tr.wikipedia.org/wiki/Arama_Motorlar%C4%B1_i%C3%A7in_Eniyileme">SEO</a> dostu bir Ã§Ã¶zÃ¼m bulmak gerekmek idi.</p>
<p>GidiÅŸata gÃ¶re ÅŸanslÄ± olduÄŸum noktalar sÄ±rasÄ± ile <a href="http://tr.wikipedia.org/wiki/Apache_HTTP_Sunucusu">Apache </a>gibi kolay esneyebilen yapÄ±da bir web sunucu kullanmam, eski blogumun ana dizinde deÄŸil de bir alt dizinde (/blg alt dizininde) olmasÄ± idi.</p>
<p>BildiÄŸiniz Ã¼zre Apache web sunucusu <a href="http://tr.wikipedia.org/wiki/Htaccess">.htaccess</a> adlÄ± bir dosya ile ÅŸahsa ve isteklere mÃ¼nhasÄ±r hale getirilebilmekte ve <a href="http://sozluk.sourtimes.org/show.asp?t=mod%20rewrite">mod_rewrite</a> modÃ¼lÃ¼ ile de <a href="http://tr.wikipedia.org/wiki/URL">URL</a>&#8216;ler Ã¼zerinde dilediÄŸiniz gibi deÄŸiÅŸiklik yapma imkanÄ± sunmaktadÄ±r. Bu imkanlar dahilinde ben de arama motorlarÄ±nca eski blogumdaki iÅŸaretlenen linkleri, gelen ziyaretÃ§ilere (Ã¶zellikle arama motoru robotlarÄ±na {Ã¶rneÄŸin: <a href="http://tr.wikipedia.org/wiki/Google_bot">Google bot</a>} ) buradan taÅŸÄ±ndÄ±ÄŸÄ±nÄ± belirtmeyi seÃ§tim. BÃ¶ylece arama motorlarÄ± bu sayfalarÄ± bir daha blog&#8217;um Ã¼zerinde aramayacaktÄ± ve arama sonuÃ§larÄ±ndan kÄ±sa sÃ¼rede kalkacaktÄ±r.</p>
<p>Bunun nasÄ±l yaptÄ±m!</p>
<p>Blog&#8217;umun hali hazÄ±rda kullanmÄ±ÅŸ olduÄŸu .htaccess dosyasÄ± iÃ§erisine yalnÄ±zca bir satÄ±r eklemek bunun iÃ§in yeterli oldu.</p>
<p style="padding-left: 30px;">
<p><code lang="apache"><br />
RewriteEngine On<br />
RewriteBase /<br />
RedirectMatch 301 /blg(.*) /<br />
RewriteCond %{REQUEST_FILENAME} !-f<br />
RewriteCond %{REQUEST_FILENAME} !-d<br />
RewriteRule . /index.php [L]<br />
</code><br />
Burada birinci satÄ±rla beraber rewrite modÃ¼lÃ¼ aktif hale getirip ikinci satÄ±r ile birlikte kÃ¶k ve tÃ¼m alt dizinleriÂ  iÃ§in geÃ§erli olduÄŸunu belirttik. AsÄ±l olayÄ±mÄ±z ise Ã¼Ã§Ã¼ncÃ¼ satÄ±rda, kÃ¶k dizin iÃ§erisinde blg ile baÅŸlayan herhangi bir URL olduÄŸunda <a href="http://tr.wikipedia.org/wiki/HTTP_durum_kodlar%C4%B1">HTTP 301</a> hata kodu, yani kalÄ±cÄ± olarak buradan taÅŸÄ±ndÄ± yÃ¶nlendirme direktifi oluÅŸturarak tekrar kÃ¶k dizine yÃ¶nlendirmesi ile tamamlanmÄ±ÅŸ oldu. BÃ¶ylece artÄ±k arama motorlarÄ±, dÄ±ÅŸarÄ±dan gelen linkler http://leoman.gen.tr/blg/eski-bir-post sayfasÄ±na ulaÅŸamadÄ±klarÄ±nda &#8220;404 &#8211; sayfa bulunamadÄ±&#8221; hatasÄ± almak yerine bu sayfanÄ±n burda olmadÄ±ÄŸÄ±na dair bir yÃ¶nlendirme alacaklar ve http://leoman.gen.tr/ adresine yÃ¶nlenecekler. BÃ¶ylece kimse tarafÄ±ndan kÃ¶tÃ¼ Ã§ocuk olarak gÃ¶zÃ¼kmeyeceÄŸim.</p>
<p>Bu gibi bir deÄŸiÅŸikliÄŸi ise sadece bir alt klasÃ¶rden kÃ¶k dizine taÅŸÄ±mak iÃ§in yapacaksanÄ±z ÅŸu direktifi de kullanabilirsiniz.<br />
<code lang="apache"><br />
RedirectMatch 301 /blg(.*) /$1<br />
</code><br />
Ã–rneÄŸe gÃ¶re; http://leoman.gen.tr/blg/eski-bir-post adresine gelen istekler http://leoman.gen.tr/eski-bir-post adresine yÃ¶nlenecekler.</p>
<p>Bol SEO&#8217;lu 404&#8242;sÃ¼z gÃ¼nler efendim.</p>
<div style="height:66px;" class="really_simple_share robots-nocontent snap_nopreview"><div class="really_simple_share_facebook_like" style="width:100px;"><iframe src="http://www.facebook.com/plugins/like.php?href=http%3A%2F%2Fleoman.gen.tr%2F2008%2F12%2Fseo-htaccess-ve-klasor-degisiklikleri%2F&amp;layout=box_count&amp;show_faces=false&amp;width=&amp;action=recommend&amp;colorscheme=light&amp;send=false&amp;height=62" 
						scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:px; height:62px;" allowTransparency="true"></iframe></div><div class="really_simple_share_google1" style="width:80px;"><div class="g-plusone" data-size="tall" data-href="http://leoman.gen.tr/2008/12/seo-htaccess-ve-klasor-degisiklikleri/" ></div></div><div class="really_simple_share_linkedin" style="width:100px;"><script type="IN/Share" data-counter="top" data-url="http://leoman.gen.tr/2008/12/seo-htaccess-ve-klasor-degisiklikleri/"></script></div><div class="really_simple_share_digg" style="width:100px;"><script type="text/javascript" src="http://widgets.digg.com/buttons.js"></script>
					<a class="DiggThisButton DiggMedium" href="http://digg.com/submit?url=http://leoman.gen.tr/2008/12/seo-htaccess-ve-klasor-degisiklikleri/&amp;title=SEO, .htaccess ve klas&Atilde;&para;r de&Auml;Ÿi&Aring;Ÿiklikleri"></a></div><div class="really_simple_share_stumbleupon" style="width:100px;"><script type="text/javascript" src="http://www.stumbleupon.com/hostedbadge.php?s=5&amp;r=http://leoman.gen.tr/2008/12/seo-htaccess-ve-klasor-degisiklikleri/"></script></div><div class="really_simple_share_twitter" style="width:100px;"><a href="http://twitter.com/share" class="twitter-share-button" data-count="vertical" 
						data-text="SEO, .htaccess ve klasÃ¶r deÄŸiÅŸiklikleri" data-url="http://leoman.gen.tr/2008/12/seo-htaccess-ve-klasor-degisiklikleri/" 
						data-via="leventyalcinn"   data-related="leoman:The author of this post" ></a></div></div>
		<div style="clear:both;"></div>]]></content:encoded>
			<wfw:commentRss>http://leoman.gen.tr/2008/12/seo-htaccess-ve-klasor-degisiklikleri/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

