View source for Rewrite Modus

Auch verfügbar in //((../English/ModRewrite English))//

{{toc numerate=1}}

WackoWiki mit **mod_rewrite** verwenden 

Wenn Apache das Modul mod_rewrite einkompiliert hat (und dein Provider "RewriteEngine On" auch ausführen lässt...),
ist es ganz einfach, URL rewriting einzustellen:
  - kopiere die **((Glossar/H/htaccess .htaccess))**-Datei, die bei WackoWiki mitgeliefert wird in dein Installationsverzeichnis
  - setze in der ((Konfiguration Konfiguration)) ##'rewrite_mode' => 1##

===Grundlagen==
Mod_rewrite ist ein Modul für den ((Glossar/A/Apache Apache Webserver)) und schreibt die angeforderte URLs on the fly um. Es funktioniert beides in per-server context (Apache v2.x: ##apache2.conf##) und per-directory context (##.htaccess##). Detaillierte Informationen findet man unter  ((https://httpd.apache.org/docs-2.4/mod/mod_rewrite.html Apache Module mod_rewrite)) und ((https://httpd.apache.org/docs/current/rewrite/intro.html URL Rewriting Guide)).

  1. mod_rewrite ermöglicht: 
    * ##~http://www.example.com/Download##
  2. mod_rewrite verhindert: 
    * ##~http://www.example.com/?page=Download##

===Wie man mod_rewrite aktiviert==
Du benötigst einen ((Glossar/A/Apache Apache Webserver)) auf dem WackoWiki läuft und das Module **mod_rewrite** muss installiert und aktiviert sein.

mod_rewrite in der Apache Konfigurationsdatei (http.conf oder apache2.conf):
**///apache/conf/http.conf//**

**aktiviert**:
%%LoadModule rewrite_module modules/mod_rewrite.so%%
**deaktiviert**
%%#LoadModule rewrite_module modules/mod_rewrite.so%%

====AllowOverride All==
Stelle sicher dass deine ((Glossar/H/htaccess .htaccess)) Dateien **nicht ignoriert** werden: Stelle in deiner Apache Konfigurationsdatei (http.conf oder apache2.conf) für das Verzeichnis in dem dein Wiki ist folgendes sicher:
**///apache/conf/http.conf//**
%%AllowOverride None%%
**nicht gesetzt** ist, weil sonst ((https://httpd.apache.org/docs-2.4/mod/core.html#allowoverride .htaccess Dateien werden ignoriert)).
%%AllowOverride All%%

Beispiel mit AllowOverride All:
**///apache/conf/http.conf//**
%%
#Wacko URL-rewriting
<Directory "/real/path/to/yoursubdir">
    Options Indexes FollowSymLinks Includes ExecCGI
    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:

    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>
%%

===mit ((Glossar/H/htaccess .htaccess))==
Falls man keine Rechte besitzt, um die ##httpd.conf## / ##apache2.conf## Datei zu bearbeiten (z.B. bei Shared Hosting), dann kann man die ##.htaccess##-Methode nutzen, mit folgendem Inhalt:

In der Datei befinden sich keine vom Benutzer zu ändernde Bestandteile. Falls du irgendetwas durch Ändern der .htaccess beheben willst, dann bist du sehr wahrscheinlich auf dem falschen Weg.

**//wacko/.htaccess//**
%%
# No user serviceable parts inside
# If you want to fix anything by tuning htaccess - you're possibly on the wrong path

<IfModule mod_env.c>
	SetEnv HTTP_MOD_ENV on
</IfModule>

<IfModule mod_rewrite.c>
	<IfModule mod_env.c>
		SetEnv HTTP_MOD_REWRITE on
	</IfModule>
	RewriteEngine on
	RewriteRule ^ index.php [QSA,L]
</IfModule>

<IfModule !mod_rewrite.c>
<FilesMatch \.php$>
	# Apache 2.4
	<IfModule mod_authz_core.c>
		Require all denied
	</IfModule>
	# Apache 2.2
	<IfModule !mod_authz_core.c>
		Order Allow,Deny
		Deny from all
	</IfModule>
</FilesMatch>

<FilesMatch "^(admin|index)\.php$">
	# Apache 2.4
	<IfModule mod_authz_core.c>
		Require all granted
	</IfModule>
	# Apache 2.2
	<IfModule !mod_authz_core.c>
		Order Allow,Deny
		Allow from All
		Deny from None
	</IfModule>
</FilesMatch>
</IfModule>
%%

Die Datei ((Glossar/H/htaccess .htaccess)) ist im Installationspaket von WackoWiki, welches du heruntergeladen hast, enthalten, und findet sich dort im ##wacko/## Ordner. 
Falls du sie nicht findest, erstelle sie einfach (Zugriffserlaubnis: -rwxr-xr-x).

====Anpassungen für Domain Factory==
Für Wacko.5.0 habe ich in der .htaccess  lediglich die Zeile %%RewriteBase /%% einfügen müssen. ((http://www.df.eu/de/service/df-faq/technische-faq/htaccess/mod-rewrite/#acc5518 d(f)))  ((user:voelzke voelzke)) (18.01.2012 23:17)

===ohne .htaccess==
Wenn du die die ##httpd.conf## / ##apache2.conf## Datei direkt bearbeiten willst, bitte achte darauf, dass du die ##.htaccess## Datei in deinem Wacko Ordner löschst oder umbenennst.
Füge jetzt die folgenden Zeilen in deine Apache Konfigurationsdatei:
**///apache/conf/http.conf//**
%%
#Wacko URL-rewriting

    Options Indexes Includes FollowSymLinks MultiViews
    AllowOverride All
    RewriteEngine on
    RewriteRule ^ index.php [QSA,L]
    Order allow,deny
    Allow from all
%%
Starte deinen Webserver neu, damit die Änderungen aktiv werden!

===Links==
https://wiki.selfhtml.org/wiki/Webserver/mod_rewrite

{{backlinks}}