<?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>PHP Log &#187; Apache</title>
	<atom:link href="http://www.php-log.de/tags/apache/feed" rel="self" type="application/rss+xml" />
	<link>http://www.php-log.de</link>
	<description>Eine feine Sammlung nützlicher PHP Notizen</description>
	<lastBuildDate>Mon, 20 Sep 2010 00:22:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Mod_Rewrite über eine Datei</title>
		<link>http://www.php-log.de/165/allgemeines/mod_rewrite-uber-eine-datei</link>
		<comments>http://www.php-log.de/165/allgemeines/mod_rewrite-uber-eine-datei#comments</comments>
		<pubDate>Wed, 11 Feb 2009 04:24:46 +0000</pubDate>
		<dc:creator>ralle</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Administration]]></category>
		<category><![CDATA[mod_rewrite]]></category>

		<guid isPermaLink="false">http://www.php-log.de/?p=165</guid>
		<description><![CDATA[Eigentlich jedes Framework dass das MVC Konzept abbildet, schickt jeden Request der am Webserver aufschlägt über eine zentrale Datei. Meist ist das die index.php die sich im Webroot befindet. Dies wird mit Hilfe des (gefürchteten) Apache Moduls &#8220;Mod Rewrite&#8221; realisiert und da &#8220;Mod Rewrite&#8221; lediglich ein Regelwerk vorgibt, und es dazu noch Reguläre Ausdrücke unterstützt, [...]]]></description>
			<content:encoded><![CDATA[<p>Eigentlich jedes Framework dass das MVC Konzept abbildet, schickt jeden Request der am Webserver aufschlägt über eine zentrale Datei. Meist ist das die index.php die sich im Webroot befindet. Dies wird mit Hilfe des (gefürchteten) Apache Moduls &#8220;Mod Rewrite&#8221; realisiert und da &#8220;Mod Rewrite&#8221; lediglich ein Regelwerk vorgibt, und es dazu noch Reguläre Ausdrücke unterstützt, gibt es gibt verschiedene Ansätze wie das erreicht werden kann. Ich möchte hier den Ansatz zeigen der meiner Meinung nach der flexibelste ist.<span id="more-165"></span></p>

<div class="wp_syntax"><div class="code"><pre class="apache" style="font-family:monospace;">    <span style="color: #00007f;">RewriteEngine</span> <span style="color: #0000ff;">On</span>
    <span style="color: #00007f;">RewriteCond</span> %{REQUEST_FILENAME} !-d
    <span style="color: #00007f;">RewriteCond</span> %{REQUEST_FILENAME} !-f
    <span style="color: #00007f;">RewriteRule</span> ^(.*)$ index.php?url=$1 [QSA,L]</pre></div></div>

<p>Die Regel <strong>RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]</strong> besagt: &#8220;Schicke einfach jeden Request auf die index.php&#8221;. Die erste Rewrite Condition <strong>RewriteCond %{REQUEST_FILENAME} !-d</strong> aber sagt: &#8220;Gilt aber nicht wenn das Verzeichnis tatsächlich existiert&#8221;. Die zweite Rewrite Condition <strong>RewriteCond %{REQUEST_FILENAME} !-f</strong> fügt noch hinzu: &#8220;Und auch nicht wenn die Datei tatsächlich existiert&#8221;. Somit werden also alle &#8220;virtuellen&#8221; Requests auf die index.php geleitet, aber vorhandene Resourcen wie Bilder, CSS, JavaScript-Dateien etc. werden nicht über das Framework geschickt.</p>
<blockquote><p>Andere Ansätze funktionieren natürlich auch, aber bei diesem Ansatz ist es sehr einfach externe Scripte, die nicht zum Framework gehören, einzubinden. Im besten Fall legt man Sie einfach im Webroot ab.</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.php-log.de/165/allgemeines/mod_rewrite-uber-eine-datei/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

