Auch verfügbar in //((../English/ModRewrite English))//
{{toc numerate=1}}
===Apache mod_rewrite===
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 .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).
%%(info type="note")
Alle Regeln, die man in eine ##.htaccess##-Datei eintragen kann, können auch direkt in die Server-Konfigurationsdateien eingetragen werden. Tatsächlich empfiehlt die offizielle Apache-Dokumentation die Verwendung von Server-Konfigurationsdateien anstelle von ##.htaccess##, da Apache auf diese Weise schneller arbeitet.
Das Setzen von Regeln in ##.htaccess## ist jedoch praktisch, insbesondere bei mehreren Websites auf demselben Server. Es ist kein Neustart des Servers erforderlich, damit Änderungen wirksam werden, und es sind keine Root-Rechte erforderlich, um diese Regeln zu bearbeiten, was die Wartung vereinfacht und Änderungen mit einem unprivilegierten Konto möglich macht.
%%
=====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!
===Nginx rewrite===
Im Rewrite-Modus wirkt sich die Nginx-Einstellung auf die URL des Verwaltungsbereichs aus. Der folgende Code kann verwendet werden.
In other locales, parse the URL
%%
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
%%
{{backlinks}}