<?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>tobias.bloggt &#187; technikkram</title>
	<atom:link href="http://tobias-bloggt.de/category/technikkram/feed/" rel="self" type="application/rss+xml" />
	<link>http://tobias-bloggt.de</link>
	<description>von weiten reisen, nerdigen skripten und kreativem agenturleben</description>
	<lastBuildDate>Sat, 08 Oct 2011 19:59:40 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>dirsize – Ein kleines Linux-Skript</title>
		<link>http://tobias-bloggt.de/2011/06/04/dirsize-ein-kleines-linux-skript/</link>
		<comments>http://tobias-bloggt.de/2011/06/04/dirsize-ein-kleines-linux-skript/#comments</comments>
		<pubDate>Sat, 04 Jun 2011 13:30:46 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[technikkram]]></category>
		<category><![CDATA[Bash]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[Shell]]></category>
		<category><![CDATA[skript]]></category>

		<guid isPermaLink="false">http://tobias-bloggt.de/?p=763</guid>
		<description><![CDATA[Ein kleines Skript das die kumulierte Gesamtgr&#246;&#223;e (inkl. Unterordnern) eines Ordners ausgibt. Das selbe Ergebnis kann auch mit folgendem Kommando erreicht werden, ist aber eben mehr zu tippen… du -h -c /root &#124; grep total &#124; awk '{print $1}' Installation: cd /usr/local/bin/ touch dirsize nano dirsize # oder vi dirsize # Quellcode einf&#252;gen und abspeichern [...]]]></description>
			<content:encoded><![CDATA[<p>Ein kleines Skript das die kumulierte Gesamtgröße (inkl. Unterordnern) eines Ordners ausgibt. Das selbe Ergebnis kann auch mit folgendem Kommando erreicht werden, ist aber eben mehr zu tippen… <img src='http://tobias-bloggt.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">du</span> <span style="color: #660033;">-h</span> <span style="color: #660033;">-c</span> <span style="color: #000000; font-weight: bold;">/</span>root <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> total <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $1}'</span></pre></div></div>

<p>Installation:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">cd</span> <span style="color: #000000; font-weight: bold;">/</span>usr<span style="color: #000000; font-weight: bold;">/</span>local<span style="color: #000000; font-weight: bold;">/</span>bin<span style="color: #000000; font-weight: bold;">/</span>
<span style="color: #c20cb9; font-weight: bold;">touch</span> dirsize
<span style="color: #c20cb9; font-weight: bold;">nano</span> dirsize
<span style="color: #666666; font-style: italic;"># oder vi dirsize</span>
<span style="color: #666666; font-style: italic;"># Quellcode einfügen und abspeichern</span>
<span style="color: #c20cb9; font-weight: bold;">chmod</span> +x dirsize</pre></div></div>

<p>Verwendung:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;"># Ordnergröße in Bytes:</span>
dirsize <span style="color: #000000; font-weight: bold;">/</span>root
&nbsp;
<span style="color: #666666; font-style: italic;"># Ordnergröße in &quot;lesbarem&quot; Format mit Einheit (bspw. 1K 234M 2G)</span>
dirsize <span style="color: #660033;">-h</span> <span style="color: #000000; font-weight: bold;">/</span>root
&nbsp;
<span style="color: #666666; font-style: italic;"># Wie -h, verwendet zur Umrechnung aber 1000er-Blöcke</span>
<span style="color: #666666; font-style: italic;"># =&amp;gt; SI-Einheiten anstatt 1024-System</span>
dirsize <span style="color: #660033;">-si</span> <span style="color: #000000; font-weight: bold;">/</span>root</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
&nbsp;
<span style="color: #666666; font-style: italic;">#################################################################</span>
<span style="color: #666666; font-style: italic;">#                                                               #</span>
<span style="color: #666666; font-style: italic;"># dirsize - displays the filesize of a directory                #</span>
<span style="color: #666666; font-style: italic;">#                                                               #</span>
<span style="color: #666666; font-style: italic;"># @author  Tobias Fischer / info (at) mediaversal (dot) de      #</span>
<span style="color: #666666; font-style: italic;"># @link    http://tobias-bloggt.de/?p=763                       #</span>
<span style="color: #666666; font-style: italic;"># @date    2011-06-03                                           #</span>
<span style="color: #666666; font-style: italic;"># @version 1.0                                                  #</span>
<span style="color: #666666; font-style: italic;"># @licence CC Attribution-Share Alike 3.0                       #</span>
<span style="color: #666666; font-style: italic;">#          http://creativecommons.org/licenses/by-sa/3.0/       #</span>
<span style="color: #666666; font-style: italic;">#################################################################</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># display help text</span>
helptext <span style="color: #7a0874; font-weight: bold;">&#40;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span> <span style="color: #7a0874; font-weight: bold;">&#123;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Usage: $0 [-h|-si|-b] directory&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;       -h  directoy  : print sizes in human readable format (e.g., 1K 234M 2G)&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;       -si directory : like -h, but use powers of 1000 not 1024&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;       -b  directory : display the directory size in bytes (standard if no option)&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;       --help        : display this help text&quot;</span>
        <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span>
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># check first parameter (should be an option)</span>
<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #007800;">$1</span> <span style="color: #000000; font-weight: bold;">in</span>
  -<span style="color: #7a0874; font-weight: bold;">&#91;</span>Hh<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #666666; font-style: italic;"># display size in human readable format</span>
        <span style="color: #c20cb9; font-weight: bold;">du</span> <span style="color: #660033;">-h</span> <span style="color: #660033;">-c</span> <span style="color: #007800;">$2</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> total <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $1}'</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
  -<span style="color: #7a0874; font-weight: bold;">&#91;</span>Ss<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#91;</span>Ii<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #666666; font-style: italic;"># display size in human readable format</span>
        <span style="color: #c20cb9; font-weight: bold;">du</span> <span style="color: #660033;">--si</span> <span style="color: #660033;">-c</span> <span style="color: #007800;">$2</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> total <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $1}'</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
  -<span style="color: #7a0874; font-weight: bold;">&#91;</span>Bb<span style="color: #7a0874; font-weight: bold;">&#93;</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #666666; font-style: italic;"># display size in bytes</span>
        <span style="color: #c20cb9; font-weight: bold;">du</span> <span style="color: #660033;">-c</span> <span style="color: #007800;">$2</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> total <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $1}'</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
  --help<span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #666666; font-style: italic;"># display help text</span>
        helptext
        <span style="color: #000000; font-weight: bold;">;;</span>
  <span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #007800;">$#</span> <span style="color: #660033;">-eq</span> <span style="color: #000000;">0</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> ; <span style="color: #000000; font-weight: bold;">then</span>
&nbsp;
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;&quot;</span>
                <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;ERROR! Bad arguments!&quot;</span>
&nbsp;
                <span style="color: #666666; font-style: italic;"># display help text</span>
                helptext
&nbsp;
                <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">1</span>
        <span style="color: #000000; font-weight: bold;">else</span>
                <span style="color: #666666; font-style: italic;"># no option set, take first parameter as directory</span>
                <span style="color: #666666; font-style: italic;"># same as -b</span>
                <span style="color: #c20cb9; font-weight: bold;">du</span> <span style="color: #660033;">-c</span> <span style="color: #007800;">$1</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> total <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{print $1}'</span>
        <span style="color: #000000; font-weight: bold;">fi</span>
        <span style="color: #000000; font-weight: bold;">;;</span>
<span style="color: #000000; font-weight: bold;">esac</span></pre></div></div>

]]></content:encoded>
			<wfw:commentRss>http://tobias-bloggt.de/2011/06/04/dirsize-ein-kleines-linux-skript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Keine w&#246;chentlichen Tweetups mehr</title>
		<link>http://tobias-bloggt.de/2011/05/01/keine-wochentlichen-tweetups-mehr/</link>
		<comments>http://tobias-bloggt.de/2011/05/01/keine-wochentlichen-tweetups-mehr/#comments</comments>
		<pubDate>Sun, 01 May 2011 10:41:49 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[technikkram]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://tobias-bloggt.de/?p=750</guid>
		<description><![CDATA[Twitter ist Twitter – und sollte auch so bleiben… Die Vermischung mit den eigentlichen Bloginhalten hier st&#246;ren mich inzwischen ziemlich, und deshalb werde ich die w&#246;chentliche automatische Twitter-Sammlung heute abstellen. Alle die mein Twitter-Nonsense interessiert k&#246;nnen mir ja auch direkt auf Twitter folgen: twitter.com/tobias_fischer]]></description>
			<content:encoded><![CDATA[<p>Twitter ist Twitter – und sollte auch so bleiben… Die Vermischung mit den eigentlichen Bloginhalten hier stören mich inzwischen ziemlich, und deshalb werde ich die wöchentliche automatische Twitter-Sammlung heute abstellen. Alle die mein Twitter-Nonsense interessiert können mir ja auch direkt auf Twitter folgen: <a href="http://www.twitter.com/tobias_fischer">twitter.com/tobias_fischer</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tobias-bloggt.de/2011/05/01/keine-wochentlichen-tweetups-mehr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mod_rewrite in der Praxis</title>
		<link>http://tobias-bloggt.de/2011/03/22/mod_rewrite-in-der-praxis/</link>
		<comments>http://tobias-bloggt.de/2011/03/22/mod_rewrite-in-der-praxis/#comments</comments>
		<pubDate>Tue, 22 Mar 2011 21:22:23 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[technikkram]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[RegEx]]></category>

		<guid isPermaLink="false">http://tobias-bloggt.de/?p=326</guid>
		<description><![CDATA[Eines der am h&#228;ufigsten ben&#246;tigten aber am kompliziertesten zu bedienenden Module f&#252;r den Webserver Apache ist sicherlich das Modul mod_rewrite. Neben der offiziellen Dokumentation (engl.) findet man im Internet zwar Informationen zuhauf, allerdings meist unvollst&#228;ndig oder f&#252;r den eigenen, sehr speziellen Einsatzzweck unpassend. Auch die deutsche Seite modrewrite.de und das angeschlossene Forum sind meist keine [...]]]></description>
			<content:encoded><![CDATA[<p>Eines der am häufigsten benötigten aber am kompliziertesten zu bedienenden Module für den Webserver Apache ist sicherlich das Modul <em>mod_rewrite</em>. Neben der <a href="http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html" target="_blank">offiziellen Dokumentation (engl.)</a> findet man im Internet zwar Informationen zuhauf, allerdings meist unvollständig oder für den eigenen, sehr speziellen Einsatzzweck unpassend. Auch die deutsche Seite <a title="Website modrewrite.de" href="http://www.modrewrite.de/" target="_blank">modrewrite.de</a> und das angeschlossene <a title="Forum modrewrite.de" href="http://forum.modrewrite.de/" target="_blank">Forum</a> sind meist keine große Hilfe. Die Syntaxübersicht liegt noch nichtmal vollständig vor und im Forum wartet man meist vergebens auf eine Antwort.</p>
<p>Mit dem Testen von mod_rewrite-Regeln tun sich die meisten Nutzer so schwer, weil sie die zu Grunde liegende Syntax der <a href="http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck" target="_blank">Regulären Ausdrücke (RegExp)</a> nicht beherschen. Doch gerade diese ist hierbei essenziell. Wer RegExp nicht versteht, wird auch mod_rewrite niemals verstehen…</p>
<p>Ich möchte an dieser Stelle kein weiteres mod_rewrite-Tutorial schreiben, sondern lediglich einige mod_rewrite-Snippets vorstellen die ich in den letzten Jahren geschrieben habe und die sich in der Praxis bewährt haben. Möget ihr davon profitieren und lernen <img src='http://tobias-bloggt.de/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-326"></span></p>
<p><em>ACHTUNG! Ich übernehmen keine Gewähr für die Richtigkeit der hier genannten mod_rewrite-Beispiele.</em></p>
<hr/>
<h2>Inhaltsverzeichnis</h2>
<ol>
<li><a href="#id1">Auf Favicon in untergeordnetem Verzeichnis verweisen</a></li>
<li><a href="#id2">Do­main A mit ei­ner ein­zi­gen Aus­nahme auf Do­main B umleiten</a></li>
<li><a href="#id3">Ei­nen Query-String aus­wer­ten und weiterverarbeiten</a></li>
<li><a href="#id4">domain.de auf www.domain.de umleiten</a></li>
<li><a href="#id5">Meh­rere Do­mains auf eine zen­trale Do­main weiterleiten</a></li>
<li><a href="#id6">Verzeichnis-URLs um­schrei­ben</a></li>
<li><a href="#id7">Last but not least…</a></li>
<li><a href="#id8">Ausblick</a></li>
</ol>
<hr/>
<h2 id="id1">Auf Favicon in untergeordnetem Verzeichnis verweisen</h2>
<p>Mit folgendem Script werden alle Anfragen an die Datei <code>favicon.ico</code> im aktuellen Verzeichnis an die Datei <code>skins/favicon.ico</code> weitergeleitet.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">RewriteRule ^favicon.ico$    skins/favicon.ico</pre></div></div>

<hr/>
<h2 id="id2">Domain A mit einer einzigen Ausnahme auf Domain B umleiten</h2>
<p>Der folgende Zweizeiler leitet alle Anfragen an die Domain <code>domain-a.de</code> an <code>domain-b.de</code> um – mit Ausnahme der Datei <code>dateiausnahme.html</code>. Während der Umleitung wird der <a href="http://de.wikipedia.org/wiki/HTTP-Statuscode" target="_blank">HTTP-Statuscode 301</a> gesendet, der eine dauerhafte Weiterleitung signalisiert.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">RewriteCond %{HTTP_HOST} ^(www\.)?domain-a\.de$ [NC]
RewriteRule !dateiausnahme.html$    http://www.domain-b.de/ [R=301]</pre></div></div>

<p>Zu beachten ist, dass der Punkt „.“ im <em>Match-Pattern</em> der <em>RewriteCondition</em> maskiert werden muss, in der <em>RewriteRule</em> entgegen den Regeln von Regulären Ausdrücken allerdings nicht!</p>
<hr/>
<h2 id="id3">Einen Query-String auswerten und weiterverarbeiten</h2>
<p>Sicherlich eine der anspruchsvollsten Aufgaben ist die Auswertung eines <em>URL-Query-Strings</em>, also dem Teil der URL der der Domain und allen darauffolgenden Verzeichnisangaben folgt.</p>
<p>In diesem Fall soll der Webmail-Aufruf aus Plesk, der standardmäßig auf den Webmailer <em>Horde</em> und dessen Struktur verweist, auf den Webmailer <em>Roundcube</em> umgebogen werden. Der Aufruf <code>http://webmail.domain.de/imp/login.php?imapuser=post%40domain.de</code> muss umgeschrieben werden in <code>http://webmail.domain.de/?_user=post@domain.de</code></p>
<p>Der reguläre Ausdruck der RewriteCondition matcht auf eine beliebige Domain mit dem Zusatz <code>(beliebiger Inhalt)imapuser=(vorderer Teil der maskierten E-Mail-Adresse)maskiertes @-Zeichen(hinterer Teil der E-Mail-Adresse)</code>. Alle geklammerten Teile werden dabei in Variablen gespeichert und können im nächsten Schritt wieder verwendet werden. Die Klammern werden der Reihe nach durchnummeriert und können in einer RewriteRule durch ein voragestellten „%“ als Variable genutzt werden. Die RewriteCondition matcht dabei nur auf den Query-String. Erst im nächsten Schritt, in der RewriteRule, wird der Dateiaufruf ausgewertet und umgeleitet.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">RewriteCond %{QUERY_STRING} ^(.*)imapuser=([^%]*)%40(.*)$ [NC]
RewriteRule ^imp/login.php$    /?_user=%2@%3 [R=301]</pre></div></div>

<hr/>
<h2 id="id4">domain.de auf www.domain.de umleiten</h2>
<p>Eine der häufigsten mod_rewrite-Anfragen ist die Umleitung des Domainaufrufs <code>http://domain.de/index.php</code> auf <code>http://www.domain.de/index.php</code> – oder umgekehrt.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">RewriteCond %{HTTP_HOST} ^domain\.de$ [NC]
RewriteRule ^(.*)$    http://www.domain.de/$1 [R=301,L]</pre></div></div>


<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">RewriteCond %{HTTP_HOST} ^www\.domain\.de$ [NC]
RewriteRule ^(.*)$    http://domain.de/$1 [R=301,L]</pre></div></div>

<p>Der Parameter „L“ hinter dem HTTP-Statuscode gibt hierbei an, dass dies die letzte Regel ist, die verarbeitet werden soll. Alle folgenden mod_rewrite-Regeln werden ignoriert.</p>
<p>Auch diese Regel arbeitet wieder mit Variablen – allerdings nur innerhalb der RewriteRule. Alle Aufrufe nach dem Domainnamen (hier: <code>/index.php</code>) werden in der ersten Variablen gespeichert die im Weiterleitungs-Ausdruck mit vorangestelltem „$“ verwendet werden kann.</p>
<hr/>
<h2 id="id5">Mehrere Domains auf eine zentrale Domain weiterleiten</h2>
<p>Folgendes Beispiel verknüpft mehrere RewriteConditions miteinander. Dazu dient der Parameter „OR“. Die RewriteRule wird angewendet, wenn eine der drei Conditions zutrifft.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">RewriteCond %{HTTP_HOST} ^domainname\.de$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.domainname\.de$ [NC,OR]
RewriteCond %{HTTP_HOST} ^domain-name\.de$ [NC]
RewriteRule ^(.*)$    http://www.domain-name.de/$1 [R=301,L]</pre></div></div>

<p>Der Paramter „NC“ (<em>NoCase</em>) gibt an, dass nicht zwischen Groß– und Kleinschreibung unterschieden wird.</p>
<hr/>
<h2 id="id6">Verzeichnis-URLs umschreiben</h2>
<p><em>Search-Engine-Friendly-URLs</em> sind ziemlich in Mode gekommen. Kaum eine Website (und auch dieses Blog) verwendet mehr URLs der Form <code>www.domain.de/index.php?page=start&#038;kat=allgemein</code>. Stattdessen würde man beispielsweise <code>www.domain.de/allgemein/start.html</code> schreiben.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;">RewriteRule ^([^/]*)/([^\.]*).html$   /index.php?page=$2<span style="color: #ddbb00;">&amp;kat=$1 [QSA]</span></pre></div></div>

<p>Der reguläre Ausdruck nutzt in diesem Fall Negierungen, um eine bestimmte Syntax einzuhalten. <code>[^/]*</code> trifft auf alle Zeichen zu, außer auf den Slash „/“. Dieser wird nach der Klammerung gematcht und ist somit nicht Teil der Variablen. <code>[^\.]*</code> trifft auf alle Zeichen zu, außer auf den Punkt (Maskierung beachten!). So kann sichergestellt werden, dass die Dateiendung <code>.html</code> nicht mehr Teil der Variablen ist. Hierbei ist jedoch eine strenge Namenskonvention zu beachten, da der erste Teil auf gar keinen Fall einen Slash und der zweite Teil vor der Dateiendung keinen Punkt enthalten darf.</p>
<p>Der Parameter „QSA“ gibt hierbei an, dass der Query-String des originären Aufrufs auch an die Weiterleitungs-URL angehängt werden soll.</p>
<p>Die Weiterleitung erfolgt in diesem Fall ausschließlich intern, da der RewriteRule kein Parameter „R“ angehängt ist. Der Benutzer bekommt also von dieser Weiterleitung nichts mit und sieht im Browser die URL <code>www.domain.de/allgemein/start.html</code>.</p>
<hr/>
<h2 id="id7">Last but not least…</h2>
<p>… ist die Verwendung der Modul-Abfrage <code><IfModule mod_rewrite.c></code> und das Setzen der <em>RewriteBase</em> in jedem Fall äußerst sinnvoll. Dadurch werden Rewrite-Regeln nur dann ausgeführt, wenn das entsprechende Apache-Modul auch vorhanden und aktiviert ist. Und die RewriteBase schützt vor üblen Verzeichnis-Konflikten…</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;IfModule</span> mod_rewrite.c<span style="color: #000000; font-weight: bold;">&gt;</span></span>
&nbsp;
	RewriteEngine On
	RewriteBase /
&nbsp;
	...
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/IfModule<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<hr/>
<h2 id="id8">Ausblick</h2>
<p>Es gibt sicherlich noch viele viele weitere Anwendungsfälle für mod_rewrite – und mindestens ebensoviele weitere mod_rewrite-Befehle. All diese in einem einzigen Artikel zu behandeln würde allerdings den Rahmen sprengen. Deshalb behalte ich mir vor, irgendwann mal einen zweiten Teil dieses Artikels zu veröffentlichen…</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias-bloggt.de/2011/03/22/mod_rewrite-in-der-praxis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>7zip f&#252;r die Mac-Kommandozeile</title>
		<link>http://tobias-bloggt.de/2010/05/23/7zip-fuer-die-mac-kommandozeile/</link>
		<comments>http://tobias-bloggt.de/2010/05/23/7zip-fuer-die-mac-kommandozeile/#comments</comments>
		<pubDate>Sun, 23 May 2010 10:00:37 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[technikkram]]></category>
		<category><![CDATA[7zip]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[Kommandozeile]]></category>

		<guid isPermaLink="false">http://tobias-bloggt.de/?p=602</guid>
		<description><![CDATA[7zip hat sich bislang bei der breiten Masse der Computeruser noch nicht durchsetzen k&#246;nnen, und dabei ist es doch das effizienteste Zip-Programm &#252;berhaupt… Nunja, wenn schon nicht im t&#228;glichen Gebrauch eingesetzt, so eignet er sich aber zum Beispiel hervorragend zum Packen von Installationsdateien, also zur Softwaredistribution. Gro&#223;er Vorteil hiervon ist die Plattformunabh&#228;ngigkeit. Das 7zip-Kommandozeilen-Tool im [...]]]></description>
			<content:encoded><![CDATA[<p>7zip hat sich bislang bei der breiten Masse der Computeruser noch nicht durchsetzen können, und dabei ist es doch das effizienteste Zip-Programm überhaupt… Nunja, wenn schon nicht im täglichen Gebrauch eingesetzt, so eignet er sich aber zum Beispiel hervorragend zum Packen von Installationsdateien, also zur Softwaredistribution. Großer Vorteil hiervon ist die Plattformunabhängigkeit. Das 7zip-Kommandozeilen-Tool im Installer mitgeliefert, lässt sich die sehr klein verpackte Software auf jedem Zielsystem schnell und einfach entpacken und der User spart dank kleiner Dateigröße viel Downloadzeit.</p>
<p>Das Kommandozeilen-Tool von 7zip für den Mac ist allerdings nicht so leicht zu finden. Es gibt zwar <a title="p7zip-Website" href="http://p7zip.sourceforge.net/" target="_blank">p7zip</a>, das muss aber selbst kompiliert werden und ist somit nicht für alle Mac-Versionen gleichzeitig einsetzbar (aufgrund großer OS-Unterschiede zwischen PPC– und Intel-Struktur bei Mac OS X 10.4 und 10.5/6).</p>
<p>Viele Foren und Sites verweisen auf die Seite http://homepage.mac.com/krmathis welche allerdings nicht mehr aktiv ist. Nur durch Zufall bin ich bei meinen Recherchen auf die neue Website des Users gestoßen die eine universell einsetzbare p7zip-Commandline-Application zum Download anbietet: <del>http://web.me.com/krmathis</del> <a href="http://www.gethome.no/krmathis/">http://www.gethome.no/krmathis/</a><br />
Funktioniert einwandfrei mit Mac OS X 10.4 und 10.6.</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias-bloggt.de/2010/05/23/7zip-fuer-die-mac-kommandozeile/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mac OS X Geburtstagskalender mit MobileMe und iPhone syncen</title>
		<link>http://tobias-bloggt.de/2009/12/04/mac-os-x-geburtstagskalender-mit-mobileme-und-iphone-syncen/</link>
		<comments>http://tobias-bloggt.de/2009/12/04/mac-os-x-geburtstagskalender-mit-mobileme-und-iphone-syncen/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 13:43:31 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[technikkram]]></category>
		<category><![CDATA[Adressbuch]]></category>
		<category><![CDATA[iCal]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[MobileMe]]></category>
		<category><![CDATA[Sync]]></category>

		<guid isPermaLink="false">http://tobias-bloggt.de/?p=565</guid>
		<description><![CDATA[Kann es denn so schwer sein, die Geburtstage aus dem Mac OS X Adressbuch in den Kalender (iCal) einzutragen und &#252;ber MobileMe auf das iPhone zu syncen? Ja, kann es! Das sieht dann n&#228;mlich so aus: (Copyright: diekadens.de) In diesem Blogpost wird exakt beschrieben wie das syncen des Geburtstagskalenders &#252;ber MobileMe auf das iPhone funktioniert. [...]]]></description>
			<content:encoded><![CDATA[<p>Kann es denn so schwer sein, die Geburtstage aus dem Mac OS X Adressbuch in den Kalender (iCal) einzutragen und über MobileMe auf das iPhone zu syncen? Ja, kann es! Das sieht dann nämlich so aus:</p>
<p><a href="http://tobias-bloggt.de/wp-content/uploads/2009/12/5-sync-alles.jpg" rel="shadowbox[sbpost-565];player=img;"><img class="size-full wp-image-566 alignleft" title="5-sync-alles" src="http://tobias-bloggt.de/wp-content/uploads/2009/12/5-sync-alles.jpg" alt="5-sync-alles" width="500" height="332" /></a><br />
<footer>(Copyright: <a title="diekadens.de" href="http://www.diekadens.de/" target="_blank">diekadens.de</a>)</footer>
<p>In <a href="http://www.diekadens.de/2008/10/19/mobileme-abonnierte-kalender-auf-dem-iphone-und-mobileme/" target="_self">diesem Blogpost</a> wird exakt beschrieben wie das syncen des Geburtstagskalenders über MobileMe auf das iPhone funktioniert. Und zwar mit Hilfe von Zusatztools, import und export von Kalendern und Umwegen über Google. Nun gut, das mag funktionieren, aber seien wir ehrlich, das ist doch fast schon pervers…</p>
<p>Ich habe das jetzt anders gelöst: In iCal und MobileMe kann man sich den Geburtstagskalender standardmäßig einblenden lassen (über ein Abonnement). Nur das syncen klappt nicht über MobileMe. Der MobileMe-Geburtstagskalender ist also ein komplett eigenständiger Kalender der nur online existiert.</p>
<p>Über iTunes kann man jedoch auch abonnierte Kalender auf das iPhone synchronisieren. Somit kann ich den iCal-Geburtstagskalender nun ohne Probleme auch auf dem iPhone anzeigen lassen. Dort kann ich dann zwar nichts ändern, aber da die Geburtstage eh ins Adressbuch eingetragen werden, auf den Mac gesynct werden und dort dann der iCal-Geburtstagskalender automatisch aktualisiert wird und sich beim nächsten iTunes-Sync auch wieder mit dem iPhone aktualisiert, passt das schon…</p>
]]></content:encoded>
			<wfw:commentRss>http://tobias-bloggt.de/2009/12/04/mac-os-x-geburtstagskalender-mit-mobileme-und-iphone-syncen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How to revise and correct E-Books</title>
		<link>http://tobias-bloggt.de/2009/11/22/how-to-revise-and-correct-e-books/</link>
		<comments>http://tobias-bloggt.de/2009/11/22/how-to-revise-and-correct-e-books/#comments</comments>
		<pubDate>Sun, 22 Nov 2009 12:27:04 +0000</pubDate>
		<dc:creator>Tobias</dc:creator>
				<category><![CDATA[agenturgeschichten]]></category>
		<category><![CDATA[kaum zu glauben]]></category>
		<category><![CDATA[technikkram]]></category>
		<category><![CDATA[Ebook]]></category>
		<category><![CDATA[epub]]></category>
		<category><![CDATA[Fax]]></category>

		<guid isPermaLink="false">http://tobias-bloggt.de/?p=557</guid>
		<description><![CDATA[As a part of my practical term in the past six months, I developed an XML-based workflow for automated E-Book-production. To be honest, we never thought about a revision or correction workflow. But the publishing-houses did! After delivering the produced epub-files to them we received the corrections and annotations via Fax – as shown in [...]]]></description>
			<content:encoded><![CDATA[<p><a rel="lightbox[epub]" href="http://tobias-bloggt.de/wp-content/gallery/blog_bilder/ebook_corrections.jpg"><img class="ngg-singlepic ngg-center alignright" style="float:right;" src="http://tobias-bloggt.de/wp-content/gallery/blog_bilder/thumbs/thumbs_ebook_corrections.jpg" alt="ebook_corrections" width="98" height="131" /></a>As a part of my practical term in the past six months, I developed an XML-based workflow for automated E-Book-production. To be honest, we never thought about a revision or correction workflow. But the publishing-houses did! After delivering the produced epub-files to them we received the corrections and annotations via Fax – as shown in the image on the right side.</p>
<p>D’oh! We developed a really cool high-technology workflow and they put their reading-device on the copier, copied it, made their annotations on the paper and old-school-faxed it back to our office.</p>
<p>Hehe ^^ No comment… <img src='http://tobias-bloggt.de/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<footer>–––––</footer>
<footer>Info: I’m studying printing and media technology and for my practical term I worked at a small publishing service provider, the <a title="pagina GmbH" href="http://www.pagina-online.de" target="_blank">pagina GmbH</a> in Tübingen, Germany. With collegues I developed this really cool XML-EPUB-workflow with integrated automated font-subsetting. Whoever is interested in this issue, feel free to ask me or the guys at pagina…</footer>
]]></content:encoded>
			<wfw:commentRss>http://tobias-bloggt.de/2009/11/22/how-to-revise-and-correct-e-books/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

