XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   Mod-Rewrite, Clean Urls, Textpattern (http://xhtmlforum.de/showthread.php?t=54501)

Dwayne 11.11.2008 21:21

Mod-Rewrite, Clean Urls, Textpattern
 
Ich bin jetzt schon seit geraumer Zeit mit einer Textpattern-Installation bei Host Europe. Nachdem ich diese jetzt neu aufgesetzt habe, hatte ich die "unsauberen URLs" satt und wollte Clean URLs verwenden.

In der sogenannten Textpattern-Diagnose (Info, ob mit dem System alles in Ordnung ist, ob Fehler aufgetreten sind usw.) ist der Test bzgl. der Clean Urls fehlgeschlagen (was auch immer die Server Konfiguration dagegen hat, es funktioniert auch tatsächlich nicht :D)

Mein Hosting-Paket (Web Pack L, PHP5) lässt Mod-Rewrite zu und es funktioniert grundsätzlich auch (getestet mit einer "www non-www"-Expression). Da Clean-Urls nun standardmäßig nicht funktionieren, will ich per Mod-Rewrite nachhelfen.

Ich habe nun versucht, mit folgende Expression aus "domain.de/?s=kategorie" "domain.de/katgeorie" zu machen:

RewriteRule ^(kategorie-1)/$ /?s=kategorie-1

Leider funktioniert das so nicht. Weiß jemand Rat?

Die standard Textpattern-htacess sieht wie folgt aus:
Code:

#DirectoryIndex index.php index.html
#Options +FollowSymLinks
#RewriteBase /

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteCond %{REQUEST_FILENAME} -f [OR]
 RewriteCond %{REQUEST_FILENAME} -d
 RewriteRule ^(.+) - [PT,L]
 
 RewriteRule ^(.*) /index.php
</IfModule>

#php_value register_globals 0


Gumbo 11.11.2008 21:40

Die Regel beschreibt auch nur den genau umgekehrten Weg: „/kategorie-1/“ würde zu „/?s=kategorie-1“ umgeschrieben werden.

fox 11.11.2008 21:51

Zitat:

Zitat von Gumbo (Beitrag 410202)
Die Regel beschreibt auch nur den genau umgekehrten Weg: „/kategorie-1/“ würde zu „/?s=kategorie-1“ umgeschrieben werden.

Das stimmt doch so?

Wie sieht deine ganze .htaccess aus?
Hast du auch RewriteEngine On drin?

Dwayne 11.11.2008 22:09

@Fox: Ja, RewriteEngine On ist in der htaccess enthalten. Den Ausschnitt der momentanen htaccess kannst du meinem ersten Beitrag entehmen.

@Gumbo: Ich müsste es folglich nur umdrehen? Wenn ich es (hoffentlich) so gemacht habe, wie du meintest, bekomme einen 403-Fehler... Bei meiner ursprünglichen Expression übrigens auch...

fox 11.11.2008 22:14

Code:

<IfModule mod_rewrite.c>
 RewriteEngine On

 RewriteRule ^kategorie-1/$ /index.php?s=kategorie-1 [L]
</IfModule>

Funktioniert das? Wenn nicht, scheint irgendwas an deinem Server nicht zu passen.

Dwayne 11.11.2008 22:30

Leider nein -> Zugriff verweigert (403)

Gumbo 11.11.2008 22:34

Die Funktionsweise von mod_rewrite wird gerne missverstanden. Denn es wird häufig angenommen, dass mod_rewrite sowohl eingehenden als auch ausgehenden Datenverkehr verarbeiten kann. Es können also nicht nur an den Server gerichtete Anfragen verarbeitet, sondern insbesondere auch die darauf folgenden Antworten verändert werden. So etwa in HTML vorkommende URLs den Regeln entsprechend umzuschreiben, dass also beispielsweise bei folgender gegebener Regel:
Code:

RewriteRule ^([^/]+)/([^/]+)$ /index?arg1=$1&arg2=$2
ein Link wie etwa:
HTML-Code:

<a href="/index?arg1=foo&arg2=bar">
zu Folgendem umgeschrieben würde:
HTML-Code:

<a href="/foo/bar">
Das ist allerdings falsch, da mod_rewrite die Antwort den Servers unberührt lässt.

Dwayne 11.11.2008 22:39

Falls es falsch rübergekommen sein sollte: Ich bin mir durchaus bewusst, dass ModRewrite lediglich eine Art Maske darstellt. Das ist auch ok, nichts Anderes will ich damit erreichen. Man kann sich eine URL leichter merken, überflüssige Zeichen fallen weg, wenn du so willst, und es sieht schlichtweg schöner aus.

Dwayne 15.11.2008 11:53

Zitat:

Zitat von Dwayne (Beitrag 410211)
Leider nein -> Zugriff verweigert (403)

Ich konnte das Problem nun endlich lösen. Knackpunkt war der 403-Fehler, der, was auch immer ich als Regel definierte, in eine Sackgasse führte. Dank eines Hinweises im Host-Europe-Support-Forum (-MultiViews) bin ich nun doch am Ziel :)


Alle Zeitangaben in WEZ +2. Es ist jetzt 23:39 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023